Difference between revisions of "Team:Bordeaux/Design"

 
(37 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
     <meta name="viewport" content="width=device-width, initial-scale=1">
 
     <meta name="viewport" content="width=device-width, initial-scale=1">
 
     <link rel="stylesheet" href="https://2018.igem.org/Team:Bordeaux/Template/bootstrapcss?action=raw&ctype=text/css">
 
     <link rel="stylesheet" href="https://2018.igem.org/Team:Bordeaux/Template/bootstrapcss?action=raw&ctype=text/css">
     <link rel="stylesheet" href="https://2018.igem.org/Team:Bordeaux/Template/css?action=raw&ctype=text/css">
+
     <link rel="stylesheet" src="https://2018.igem.org/Team:Bordeaux/Template/css?action=raw&ctype=text/css">
 
     <style>
 
     <style>
 
         /* Main page background */
 
         /* Main page background */
Line 94: Line 94:
 
         .text_intro p {
 
         .text_intro p {
 
             margin-bottom: 25px !important
 
             margin-bottom: 25px !important
 +
        }
 +
 +
        figcaption {
 +
            font-size: 15px !important;
 +
            font-style: italic;
 +
            margin-top: 17px;
 +
            margin-bottom: 40px;
 +
            padding-left: 40px;
 +
            padding-right: 40px;
 +
            text-decoration: underline;
 
         }
 
         }
 
     </style>
 
     </style>
Line 102: Line 112:
 
     <!-- Intro Team IGEM-->
 
     <!-- Intro Team IGEM-->
 
     <div class="container text_intro">
 
     <div class="container text_intro">
         <h2>Design</h2>
+
         <h1 class="text-longshadow">Design</h1>
 
         <p> Recent studies have shown that multiple organisms have the ability of metabolizing 5-hydroxymethylfurfural (HMF).
 
         <p> Recent studies have shown that multiple organisms have the ability of metabolizing 5-hydroxymethylfurfural (HMF).
 
             For instance, enzyme able to oxidize HMF into Furan-2,5-dicarboxylic acid (FDCA) has been discovered in fungal
 
             For instance, enzyme able to oxidize HMF into Furan-2,5-dicarboxylic acid (FDCA) has been discovered in fungal
             species such as Caldariomyces fumago [1] or in prokaryotic species Cupriavidus basilensis (C. basilensis) [2].
+
             species such as
             and Methylovorus sp. [4].</p>
+
            <i>Caldariomyces fumago</i> [1] or in prokaryotic species
         <p>As we intended to work with Escherichia coli (E. coli), we focused on the enzymes discovered in prokaryotes. Due
+
            <i>Cupriavidus basilensis (C. basilensis)</i> [2]. and
            to glycosylations on the enzymes that has been found in Caldaryomyces fumago and Eukaryotes/Prokaryotes gene
+
             <i>Methylovorus sp.</i> [4].</p>
            compatibility issue, fungal enzymes have been dismissed. The following section describes the enzymes selected
+
         <p>As we intended to work with
            to achieve an efficient transformation of HMF into FDCA.
+
            <i>Escherichia coli (E. coli)</i>, we focused on the enzymes discovered in prokaryotes. Due to glycosylations on
 +
            the enzymes that has been found in
 +
            <i>Caldaryomyces fumago</i> and Eukaryotes/Prokaryotes gene compatibility issue, fungal enzymes have been dismissed.
 +
            The following section describes the enzymes selected to achieve an efficient transformation of HMF into FDCA.
 
         </p>
 
         </p>
         <p>HmfH is an enzyme that has been discovered in C. basilensis. This enzyme is part of a gene cluster implied in furanic
+
         <p>HmfH is an enzyme that has been discovered in
            compound degradation. HmfH homologues as also been found in several other bacterial species [6]. In a study,
+
            <i>C. basilensis</i>. This enzyme is part of a gene cluster implied in furanic compound degradation. HmfH homologues
            HmfH gene has been cloned into Pseudomonas putida in order to enable this bacteria to synthetize FDCA from HMF.
+
            has also been found in several other bacterial species [6]. In a study, HmfH gene has been cloned into
            HmfH catalyse two successive oxidations that transform HMF into 5-(hydroxymethyl)furoic acid ( HMF acid) and
+
            <i>Pseudomonas putida</i> in order to enable this bacteria to synthetize FDCA from HMF. HmfH catalyse two successive
            then into FDCA [5] ( fig 2. ). The modified P. putida with HmfH was able to produce FDCA without excessive amount
+
            oxidations that transform HMF into 5-(hydroxymethyl)furoic acid ( HMF acid) and then into FDCA [5] ( fig 2. ).
            of other furan derivatives. One issue with this enzyme is that the second oxidation of HMF acid into FDCA is
+
            The modified
            slower than the first one. It results in the accumulation of the intermediate product, HMF acid. In fed batch
+
            <i>P. putida</i> with HmfH was able to produce FDCA without excessive amount of other furan derivatives. One issue
            culture the accumulation of intermediate product could lead to efficiency issue to the production of high purity
+
            with this enzyme is that the second oxidation of HMF acid into FDCA is slower than the first one. It results
            FDCA.
+
            in the accumulation of the intermediate product, HMF acid. In fed batch culture the accumulation of intermediate
 +
            product could lead to an efficient production of high pure FDCA.
 
         </p>
 
         </p>
 
         <p>One way to compensate for that is to add other enzymes to the artificial metabolic pathway, in order to speed up
 
         <p>One way to compensate for that is to add other enzymes to the artificial metabolic pathway, in order to speed up
Line 127: Line 141:
 
             HMF into FDCA with HMF acid as a reaction intermediate. The Kcat of this enzyme on 5-HMF has been estimated to
 
             HMF into FDCA with HMF acid as a reaction intermediate. The Kcat of this enzyme on 5-HMF has been estimated to
 
             5.1 mM-1.min-1 [8]. By acting synergically with HmfH, Aldh1 could limit the accumulation of HmfAcid.</p>
 
             5.1 mM-1.min-1 [8]. By acting synergically with HmfH, Aldh1 could limit the accumulation of HmfAcid.</p>
 +
        <figure class="figure">
 +
            <img src="https://static.igem.org/mediawiki/2018/1/1f/T--Bordeaux--HmfO.png" class="figure-img img-fluid rounded" alt="HmfO protein structure">
 +
            <figcaption class="figure-caption">HmfO protein structure</figcaption>
 +
        </figure>
 
         <p>An other enzyme that may turn worthwhile for the biosynthesis of FDCA is HmfO (5-(hydroxymethyl)furfural Oxydase).
 
         <p>An other enzyme that may turn worthwhile for the biosynthesis of FDCA is HmfO (5-(hydroxymethyl)furfural Oxydase).
             This enzyme is present in Methylovorus sp. and in C. basilensis. HmfO belongs to a C. basilensis HMF14 gene cluster
+
             This enzyme is present in
            involved in Hmf degradation pathway. HmfO and HmfH are homologous, they both belongs to the GMC (glucose-methanol-choline)
+
            <i>Methylovorus sp.</i> and in
            oxidoreductase proteins family. The N-ter GMC domain bind to FAD, and release H2O2 as a byproduct [4]. However,
+
            <i>C. basilensis</i>. HmfO belongs to a
            unlike HmfH , HmfO needs three successive oxidations of HMF to reach FDCA (fig 1.). Thereby two intermediary
+
            <i> C. basilensis</i> HMF14 gene cluster involved in Hmf degradation pathway. HmfO and HmfH are homologous, they
            compounds are formed, 2,5-Furandicarboxaldehyde (furfural) (DFF) and 5-formyl-2-furancarboxylic acid (FFA) [4].</p>
+
            both belongs to the GMC (glucose-methanol-choline) oxidoreductase proteins family. The N-ter GMC domain bind
 +
            to FAD, and release H2O2 as a byproduct [4]. However, unlike HmfH , HmfO needs three successive oxidations of
 +
            HMF to reach FDCA (fig 1.). Thereby two intermediary compounds are formed, 2,5-Furandicarboxaldehyde (furfural)
 +
            (DFF) and 5-formyl-2-furancarboxylic acid (FFA) [4].</p>
 +
        <figure class="figure">
 +
            <img src=" https://static.igem.org/mediawiki/2018/4/46/T--Bordeaux--HMF-FDCA.png" class="figure-img img-fluid rounded" alt="Fig 2. Artificial metabolic pathway of oxidation of HMF into FDCA, using HmfH,HmfO and Aldh1 enzyms. Oxydation reactions
 +
            imply the use of a FAD co-factor and the release of hydrogen peroxyde.">
 +
            <figcaption class="figure-caption">Artificial metabolic pathway of oxidation of HMF into FDCA, using HmfH,HmfO and Aldh1 enzyms. Oxydation reactions
 +
                imply the use of a FAD co-factor and the release of hydrogen peroxyde.</figcaption>
 +
        </figure>
 
         <p>In order to obtain an efficient whole cell biocatalyst genes coding for the three previously described enzymes have
 
         <p>In order to obtain an efficient whole cell biocatalyst genes coding for the three previously described enzymes have
 
             to be under control of a strong promoter. To maximize the expression of these proteins it was planned to put
 
             to be under control of a strong promoter. To maximize the expression of these proteins it was planned to put
Line 140: Line 167:
 
             phase quicker it was planned to use an inducible promoter.The part pBAD strong (BBa_K206000) , registered by
 
             phase quicker it was planned to use an inducible promoter.The part pBAD strong (BBa_K206000) , registered by
 
             iGEM09_British_Columbia, offer a high expression level.</p>
 
             iGEM09_British_Columbia, offer a high expression level.</p>
         <p>In order to study each proteins activity individually, it was planned to cloned each one of them in pSB1-C3 under
+
         <p>In order to study each proteins activity individually, it was planned to clone each one of them in pSB1-C3 under
             control of BBa_K608002 (“strong promoter strong RBS”). Moreover , so as to study their joint activity, an operon
+
             control of BBa_K608002 (“strong promoter strong RBS”). Moreover, to study their joint activity, an operon structure
             structure of HmfH, HmfO and Aldh1 under control of an constitutive and inducible promoter has been designed (fig
+
             of HmfH, HmfO and Aldh1 under control of an constitutive and inducible promoter has been designed (fig 3).
            3).
+
 
         </p>
 
         </p>
 +
        <img src="https://static.igem.org/mediawiki/2018/0/0a/T--Bordeaux--mainplasmid.png" class="col-12 img-fluid">
 +
        <p>See standards biobrick constructions below (click to view it fullscreen)</p>
 +
        <div class="row col-12" style="margin-bottom: 50px; margin-top: 50px; text-align: center!important">
 +
            <a href="https://static.igem.org/mediawiki/2018/6/6d/T--Bordeaux--stdbiobrick1.png" class="col-4" target="_blank">
 +
                <img src="https://static.igem.org/mediawiki/2018/6/6d/T--Bordeaux--stdbiobrick1.png" class="img-fluid">
 +
                <p style="text-align: center">pSB1C3 + Aldh1 (Standard BioBrick)</p>
 +
            </a>
 +
            <a href="https://static.igem.org/mediawiki/2018/a/af/T--Bordeaux--stdbiobrick2.png" class="col-4" target="_blank">
 +
                <img src="https://static.igem.org/mediawiki/2018/a/af/T--Bordeaux--stdbiobrick2.png" class="img-fluid">
 +
                <p style="text-align: center">pSB1C3 + HmfH (Standard BioBrick)</p>
 +
            </a>
 +
            <a href="https://static.igem.org/mediawiki/2018/a/a3/T--Bordeaux--stdbiobrick3.png" class="col-4" target="_blank">
 +
                <img src="https://static.igem.org/mediawiki/2018/a/a3/T--Bordeaux--stdbiobrick3.png" class="img-fluid">
 +
                <p style="text-align: center">pSB1C3 + HmfO (Standard BioBrick)</p>
 +
            </a>
 +
        </div>
 
         <div id="ref">
 
         <div id="ref">
 
             <h4>References :</h4>
 
             <h4>References :</h4>
Line 156: Line 198:
 
                     D.E., Fraaije M.W.
 
                     D.E., Fraaije M.W.
 
                 </li>
 
                 </li>
                 <li>"Discovery and characterization of a 5-hydroxymethylfurfural oxidase from Methylovorus sp. strain MP688."
+
                 <li>"Discovery and characterization of a 5-hydroxymethylfurfural oxidase from
                    Dijkman W.P., Fraaije M.W.
+
                    <i>Methylovorus sp.</i> strain MP688." Dijkman W.P., Fraaije M.W.
 
                 </li>
 
                 </li>
 
                 <li>2010 Aug;101(16):6291-6. doi: 10.1016/j.biortech.2010.03.050. Epub 2010 Apr 3. Efficient whole-cell biotransformation
 
                 <li>2010 Aug;101(16):6291-6. doi: 10.1016/j.biortech.2010.03.050. Epub 2010 Apr 3. Efficient whole-cell biotransformation
Line 173: Line 215:
 
         </div>
 
         </div>
 
     </div>
 
     </div>
 +
    <style>
 +
        body {
 +
            font-family: 'Lato';
 +
            font-weight: 400;
 +
        }
  
 +
        .boundary {
 +
            stroke-dasharray: 2, 2;
 +
            stroke-width: 2px
 +
        }
  
 +
        .mdlabel {
 +
            font-size: 12px
 +
        }
  
                    <plasmid id="pdemo" class="plasmid" plasmidheight="450" plasmidwidth="600" sequence="{{sequence}}">
+
        .smlabel {
                        <plasmidtrack trackclass="track" radius="{{radius}}" width="25">
+
            font-size: 8px
 +
        }
  
                            <tracklabel labelclass="tracklabeltitle" text="pHS1" vadjust="-10"></tracklabel>
+
        .white {
                            <tracklabel labelclass="tracklabelbody" text="{{api.plasmid('pdemo').sequencelength}} bp" vadjust="25"></tracklabel>
+
            fill: #fff
                            <tracklabel labelclass="tracklabelsmall" text="( Click a marker )" vadjust="50"></tracklabel>
+
        }
                            <trackscale interval="10" tickclass="scale-minor"></trackscale>
+
                            <trackscale interval="50" tickclass="scale-major" showlabels="1" labelclass="scale-majortext"></trackscale>
+
  
                            <!-- Non-Coding Regions -->
+
        .red {
                            <trackmarker start="710" end="800" markerclass="noncodingregion" vadjust="55" arrowendlength="4" arrowendwidth="4" arrowstartlength="4" arrowstartwidth="4" wadjust="-10">
+
            fill: rgb(192, 64, 64)
                                <markerlabel labelclass="noncodinglabel" style="font-weight:400;kerning:2" text="710 - 800" type="path" vadjust="1"></markerlabel>
+
        }
                                <markerlabel labelclass="noncodinglabel" text="Non-Coding" vadjust="35" hadjust="0"></markerlabel>
+
                                <markerlabel labelclass="noncodinglabel" text="Region" vadjust="35" hadjust="-3"></markerlabel>
+
                            </trackmarker>
+
  
                            <!-- HindIII and Primers -->
+
        .purple {
                            <trackmarker markerclass="markerhover" start="{{featurePos-100}}" end="{{featurePos-1}}" style="fill:rgba(255,0,0,0.4)" arrowendlength="4" wadjust="8" vadjust="-4"  markerclick="markerClick($event,$marker)">
+
            fill: rgb(192, 64, 192)
                                <markerlabel labelclass="markerlabel" text="FORWARD" type="path" style="fill:#fff" vadjust="5"></markerlabel>
+
        }
                                <markerlabel labelclass="markerlabel" text="Primer" type="path" style="fill:#fff" vadjust="-5"></markerlabel>
+
                            </trackmarker>
+
                            <trackmarker start="75" style="stroke:#c00;stroke-width:2px" wadjust="12" vadjust="-6">
+
                                    <markerlabel labelclass="featurelabel" text="BamHI" type="path" valign="outer" hadjust="-2" vadjust="38"></markerlabel>
+
                                    <svgelement type="a" xlink:href="http://en.wikipedia.org/wiki/BamHI" target="_blank">
+
                                        <markerlabel labelclass="featurelabel" style="font-size:11px;font-weight:300" text="Click for details..." type="path" valign="outer" hadjust="-2" vadjust="25" showline="1" linestyle="stroke:#666;stroke-dasharray:2,2" linevadjust="-10"></markerlabel>
+
                                    </svgelement>
+
                                <markerlabel labelclass="featurelabel" text="75" type="path" valign="inner" vadjust="-5"></markerlabel>
+
                            </trackmarker>
+
                            <trackmarker start="{{featurePos}}" style="stroke:#c00;stroke-width:2px" wadjust="12" vadjust="-6">
+
                                <svgelement type="a" xlink:href="http://en.wikipedia.org/wiki/EcoRI" target="_blank"><markerlabel labelclass="featurelabel" text="EcoRI" type="path" valign="outer" hadjust="2" vadjust="30" showline="1" linestyle="stroke:#666;stroke-dasharray:2,2" linevadjust="-10"></markerlabel></svgelement>
+
                                <markerlabel labelclass="featurelabel" text="{{featurePos}}" type="path" valign="inner" vadjust="-5"></markerlabel>
+
                            </trackmarker>
+
                            <trackmarker  markerclass="markerhover" start="{{featurePos+1}}" end="{{featurePos + 120}}" style="fill:rgba(128,0,0,0.4)" arrowstartlength="4" wadjust="8" vadjust="-4"  markerclick="markerClick($event,$marker)">
+
                                <markerlabel labelclass="markerlabel" text="REVERSE" type="path" style="fill:#fff" vadjust="5"></markerlabel>
+
                                <markerlabel labelclass="markerlabel" text="Primer" type="path" style="fill:#fff" vadjust="-5"></markerlabel>
+
                            </trackmarker>
+
  
                            <!-- Sequencing Region -->
+
        .blue {
                            <trackmarker markerclass="markerhover" start="{{sequenceRegion.start}}" end="{{sequenceRegion.end}}" style="fill:rgba(0,128,0,0.1)" wadjust="30" markerclick="markerClick($event,$marker)">
+
            fill: rgb(64, 192, 192)
                                <markerlabel labelclass="regionlabel" text="Sequencing Region" type="path" style="fill:rgba(0,128,0,.6)" vadjust="40"></markerlabel>
+
        }
                            </trackmarker>
+
                            <trackmarker start="{{sequenceRegion.start}}" style="stroke:rgba(0,64,0,0.5);stroke-dasharray:3,1;" wadjust="30">
+
                                <markerlabel labelclass="regionlabel" text="{{sequenceRegion.start}}" type="path" style="fill:rgba(0,128,0,.6)" valign="inner" vadjust="-5"></markerlabel>
+
                            </trackmarker>
+
                            <trackmarker start="{{sequenceRegion.end}}" style="stroke:rgba(0,64,0,0.5);stroke-dasharray:3,1;" wadjust="30">
+
                                <markerlabel labelclick="labelClick($event,$label)" labelclass="regionlabel" text="{{sequenceRegion.end}}" type="path" style="fill:rgba(0,128,0,.6)" valign="inner" vadjust="-5"></markerlabel>
+
                            </trackmarker>
+
  
                            <!-- TARGET PROTEINS -->
+
        .green {
                            <trackmarker start="{{featureStart}}" end="{{featureEnd}}" style="fill:rgba(0,0,128,.4)" vadjust="3" arrowendlength="4" arrowendwidth="4" wadjust="-5">
+
            fill: rgb(64, 192, 64)
                                <markerlabel text="TARGET PROTEINS" type="path" style="fill:rgba(0,0,64,.7);font-size:12px;font-weight:700" vadjust="45"></markerlabel>                           
+
        }
                            </trackmarker>
+
                            <trackmarker markerclass="markerhover" ng-repeat="m in featureMarkers" style="fill:rgba(0,0,128,.4)" start="{{m.start}}" end="{{m.end}}" wadjust="8" vadjust="-4" markerclick="markerClick($event, $marker)">
+
                                <markerlabel labelclass="markerlabel" text="{{m.text}}" style="fill:#fff;font-weight:700" ></markerlabel>
+
                            </trackmarker>
+
                            <trackmarker start="{{featureStart}}" style="stroke:rgba(0,0,64,.7);stroke-width:2px;stroke-dasharray:4,2" vadjust="-7" wadjust="15">
+
                                <markerlabel text="{{featureStart}}" style="fill:rgba(0,0,64,.7);font-size:11px;font-weight:700" vadjust="-35"></markerlabel>                           
+
                            </trackmarker>
+
                            <trackmarker start="{{featureEnd}}" style="stroke:rgba(0,0,64,.7);stroke-width:2px;stroke-dasharray:4,2" vadjust="-7" wadjust="15">
+
                                <markerlabel text="{{featureEnd}}" style="fill:rgba(0,0,64,.7);font-size:11px;font-weight:700" vadjust="-35"></markerlabel>                           
+
                            </trackmarker>
+
 
+
                        </plasmidtrack>
+
                    </plasmid>
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
<script>
+
!function(t,e,n){"use strict";function r(t,e){return e=e||Error,function(){var n,r,i=arguments[0],a="["+(t?t+":":"")+i+"] ",o=arguments[1],s=arguments;for(n=a+o.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1);return e+2<s.length?de(s[e+2]):t}),n=n+"\nhttp://errors.angularjs.org/1.3.13/"+(t?t+"/":"")+i,r=2;r<arguments.length;r++)n=n+(2==r?"?":"&")+"p"+(r-2)+"="+encodeURIComponent(de(arguments[r]));return new e(n)}}function i(t){if(null==t||C(t))return!1;var e=t.length;return t.nodeType===gi&&e?!0:b(t)||ci(t)||0===e||"number"==typeof e&&e>0&&e-1 in t}function a(t,e,n){var r,o;if(t)if(k(t))for(r in t)"prototype"==r||"length"==r||"name"==r||t.hasOwnProperty&&!t.hasOwnProperty(r)||e.call(n,t[r],r,t);else if(ci(t)||i(t)){var s="object"!=typeof t;for(r=0,o=t.length;o>r;r++)(s||r in t)&&e.call(n,t[r],r,t)}else if(t.forEach&&t.forEach!==a)t.forEach(e,n,t);else for(r in t)t.hasOwnProperty(r)&&e.call(n,t[r],r,t);return t}function o(t){return Object.keys(t).sort()}function s(t,e,n){for(var r=o(t),i=0;i<r.length;i++)e.call(n,t[r[i]],r[i]);return r}function u(t){return function(e,n){t(n,e)}}function l(){return++ui}function c(t,e){e?t.$$hashKey=e:delete t.$$hashKey}function f(t){for(var e=t.$$hashKey,n=1,r=arguments.length;r>n;n++){var i=arguments[n];if(i)for(var a=Object.keys(i),o=0,s=a.length;s>o;o++){var u=a[o];t[u]=i[u]}}return c(t,e),t}function d(t){return parseInt(t,10)}function h(t,e){return f(Object.create(t),e)}function p(){}function $(t){return t}function m(t){return function(){return t}}function g(t){return"undefined"==typeof t}function v(t){return"undefined"!=typeof t}function y(t){return null!==t&&"object"==typeof t}function b(t){return"string"==typeof t}function w(t){return"number"==typeof t}function x(t){return"[object Date]"===ai.call(t)}function k(t){return"function"==typeof t}function S(t){return"[object RegExp]"===ai.call(t)}function C(t){return t&&t.window===t}function A(t){return t&&t.$evalAsync&&t.$watch}function O(t){return"[object File]"===ai.call(t)}function E(t){return"[object FormData]"===ai.call(t)}function j(t){return"[object Blob]"===ai.call(t)}function N(t){return"boolean"==typeof t}function T(t){return t&&k(t.then)}function M(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function P(t){var e,n={},r=t.split(",");for(e=0;e<r.length;e++)n[r[e]]=!0;return n}function V(t){return Wr(t.nodeName||t[0]&&t[0].nodeName)}function q(t,e){var n=t.indexOf(e);return n>=0&&t.splice(n,1),e}function D(t,e,n,r){if(C(t)||A(t))throw oi("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(e){if(t===e)throw oi("cpi","Can't copy! Source and destination are identical.");if(n=n||[],r=r||[],y(t)){var i=n.indexOf(t);if(-1!==i)return r[i];n.push(t),r.push(e)}var o;if(ci(t)){e.length=0;for(var s=0;s<t.length;s++)o=D(t[s],null,n,r),y(t[s])&&(n.push(t[s]),r.push(o)),e.push(o)}else{var u=e.$$hashKey;ci(e)?e.length=0:a(e,function(t,n){delete e[n]});for(var l in t)t.hasOwnProperty(l)&&(o=D(t[l],null,n,r),y(t[l])&&(n.push(t[l]),r.push(o)),e[l]=o);c(e,u)}}else if(e=t,t)if(ci(t))e=D(t,[],n,r);else if(x(t))e=new Date(t.getTime());else if(S(t))e=new RegExp(t.source,t.toString().match(/[^\/]*$/)[0]),e.lastIndex=t.lastIndex;else if(y(t)){var f=Object.create(Object.getPrototypeOf(t));e=D(t,f,n,r)}return e}function R(t,e){if(ci(t)){e=e||[];for(var n=0,r=t.length;r>n;n++)e[n]=t[n]}else if(y(t)){e=e||{};for(var i in t)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(e[i]=t[i])}return e||t}function I(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var r,i,a,o=typeof t,s=typeof e;if(o==s&&"object"==o){if(!ci(t)){if(x(t))return x(e)?I(t.getTime(),e.getTime()):!1;if(S(t)&&S(e))return t.toString()==e.toString();if(A(t)||A(e)||C(t)||C(e)||ci(e))return!1;a={};for(i in t)if("$"!==i.charAt(0)&&!k(t[i])){if(!I(t[i],e[i]))return!1;a[i]=!0}for(i in e)if(!a.hasOwnProperty(i)&&"$"!==i.charAt(0)&&e[i]!==n&&!k(e[i]))return!1;return!0}if(!ci(e))return!1;if((r=t.length)==e.length){for(i=0;r>i;i++)if(!I(t[i],e[i]))return!1;return!0}}return!1}function _(t,e,n){return t.concat(ni.call(e,n))}function U(t,e){return ni.call(t,e||0)}function L(t,e){var n=arguments.length>2?U(arguments,2):[];return!k(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,_(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function F(t,r){var i=r;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=n:C(r)?i="$WINDOW":r&&e===r?i="$DOCUMENT":A(r)&&(i="$SCOPE"),i}function H(t,e){return"undefined"==typeof t?n:(w(e)||(e=e?2:null),JSON.stringify(t,F,e))}function B(t){return b(t)?JSON.parse(t):t}function z(t){t=Qr(t).clone();try{t.empty()}catch(e){}var n=Qr("<div>").append(t).html();try{return t[0].nodeType===vi?Wr(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+Wr(e)})}catch(e){return Wr(n)}}function G(t){try{return decodeURIComponent(t)}catch(e){}}function W(t){var e,n,r={};return a((t||"").split("&"),function(t){if(t&&(e=t.replace(/\+/g,"%20").split("="),n=G(e[0]),v(n))){var i=v(e[1])?G(e[1]):!0;Jr.call(r,n)?ci(r[n])?r[n].push(i):r[n]=[r[n],i]:r[n]=i}}),r}function J(t){var e=[];return a(t,function(t,n){ci(t)?a(t,function(t){e.push(Z(n,!0)+(t===!0?"":"="+Z(t,!0)))}):e.push(Z(n,!0)+(t===!0?"":"="+Z(t,!0)))}),e.length?e.join("&"):""}function Y(t){return Z(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Z(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function K(t,e){var n,r,i=pi.length;for(t=Qr(t),r=0;i>r;++r)if(n=pi[r]+e,b(n=t.attr(n)))return n;return null}function X(t,e){var n,r,i={};a(pi,function(e){var i=e+"app";!n&&t.hasAttribute&&t.hasAttribute(i)&&(n=t,r=t.getAttribute(i))}),a(pi,function(e){var i,a=e+"app";!n&&(i=t.querySelector("["+a.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(a))}),n&&(i.strictDi=null!==K(n,"strict-di"),e(n,r?[r]:[],i))}function Q(n,r,i){y(i)||(i={});var o={strictDi:!1};i=f(o,i);var s=function(){if(n=Qr(n),n.injector()){var t=n[0]===e?"document":z(n);throw oi("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(/</,"&lt;").replace(/>/,"&gt;"))}r=r||[],r.unshift(["$provide",function(t){t.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),r.unshift("ng");var a=Be(r,i.strictDi);return a.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,r){t.$apply(function(){e.data("$injector",r),n(e)(t)})}]),a},u=/^NG_ENABLE_DEBUG_INFO!/,l=/^NG_DEFER_BOOTSTRAP!/;return t&&u.test(t.name)&&(i.debugInfoEnabled=!0,t.name=t.name.replace(u,"")),t&&!l.test(t.name)?s():(t.name=t.name.replace(l,""),si.resumeBootstrap=function(t){return a(t,function(t){r.push(t)}),s()},k(si.resumeDeferredBootstrap)&&si.resumeDeferredBootstrap(),void 0)}function te(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function ee(t){var e=si.element(t).injector();if(!e)throw oi("test","no injector found for element argument to getTestability");return e.get("$$testability")}function ne(t,e){return e=e||"_",t.replace($i,function(t,n){return(n?e:"")+t.toLowerCase()})}function re(){var e;mi||(ti=t.jQuery,ti&&ti.fn.on?(Qr=ti,f(ti.fn,{scope:Di.scope,isolateScope:Di.isolateScope,controller:Di.controller,injector:Di.injector,inheritedData:Di.inheritedData}),e=ti.cleanData,ti.cleanData=function(t){var n;if(li)li=!1;else for(var r,i=0;null!=(r=t[i]);i++)n=ti._data(r,"events"),n&&n.$destroy&&ti(r).triggerHandler("$destroy");e(t)}):Qr=be,si.element=Qr,mi=!0)}function ie(t,e,n){if(!t)throw oi("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function ae(t,e,n){return n&&ci(t)&&(t=t[t.length-1]),ie(k(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function oe(t,e){if("hasOwnProperty"===t)throw oi("badname","hasOwnProperty is not a valid {0} name",e)}function se(t,e,n){if(!e)return t;for(var r,i=e.split("."),a=t,o=i.length,s=0;o>s;s++)r=i[s],t&&(t=(a=t)[r]);return!n&&k(t)?L(a,t):t}function ue(t){var e=t[0],n=t[t.length-1],r=[e];do{if(e=e.nextSibling,!e)break;r.push(e)}while(e!==n);return Qr(r)}function le(){return Object.create(null)}function ce(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=r("$injector"),i=r("ng"),a=e(t,"angular",Object);return a.$$minErr=a.$$minErr||r,e(a,"module",function(){var t={};return function(r,a,o){var s=function(t,e){if("hasOwnProperty"===t)throw i("badname","hasOwnProperty is not a valid {0} name",e)};return s(r,"module"),a&&t.hasOwnProperty(r)&&(t[r]=null),e(t,r,function(){function t(t,n,r,i){return i||(i=e),function(){return i[r||"push"]([t,n,arguments]),l}}if(!a)throw n("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.",r);var e=[],i=[],s=[],u=t("$injector","invoke","push",i),l={_invokeQueue:e,_configBlocks:i,_runBlocks:s,requires:a,name:r,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:u,run:function(t){return s.push(t),this}};return o&&u(o),l})}})}function fe(t){var e=[];return JSON.stringify(t,function(t,n){if(n=F(t,n),y(n)){if(e.indexOf(n)>=0)return"<<already seen>>";e.push(n)}return n})}function de(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?fe(t):t}function he(e){f(e,{bootstrap:Q,copy:D,extend:f,equals:I,element:Qr,forEach:a,injector:Be,noop:p,bind:L,toJson:H,fromJson:B,identity:$,isUndefined:g,isDefined:v,isString:b,isFunction:k,isObject:y,isNumber:w,isElement:M,isArray:ci,version:xi,isDate:x,lowercase:Wr,uppercase:Yr,callbacks:{counter:0},getTestability:ee,$$minErr:r,$$csp:hi,reloadWithDebugInfo:te}),ei=ce(t);try{ei("ngLocale")}catch(n){ei("ngLocale",[]).provider("$locale",gn)}ei("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:Yn}),t.provider("$compile",Ke).directive({a:Ea,input:za,textarea:za,form:Pa,script:qo,select:Io,style:Uo,option:_o,ngBind:Ja,ngBindHtml:Za,ngBindTemplate:Ya,ngClass:Xa,ngClassEven:to,ngClassOdd:Qa,ngCloak:eo,ngController:no,ngForm:Va,ngHide:jo,ngIf:ao,ngInclude:oo,ngInit:uo,ngNonBindable:ko,ngPluralize:So,ngRepeat:Co,ngShow:Eo,ngStyle:No,ngSwitch:To,ngSwitchWhen:Mo,ngSwitchDefault:Po,ngOptions:Ro,ngTransclude:Vo,ngModel:bo,ngList:lo,ngChange:Ka,pattern:Fo,ngPattern:Fo,required:Lo,ngRequired:Lo,minlength:Bo,ngMinlength:Bo,maxlength:Ho,ngMaxlength:Ho,ngValue:Wa,ngModelOptions:xo}).directive({ngInclude:so}).directive(ja).directive(ro),t.provider({$anchorScroll:ze,$animate:Gi,$browser:Je,$cacheFactory:Ye,$controller:en,$document:nn,$exceptionHandler:rn,$filter:sr,$interpolate:$n,$interval:mn,$http:fn,$httpBackend:hn,$location:Tn,$log:Mn,$parse:Hn,$rootScope:Jn,$q:Bn,$$q:zn,$sce:Qn,$sceDelegate:Xn,$sniffer:tr,$templateCache:Ze,$templateRequest:er,$$testability:nr,$timeout:rr,$window:or,$$rAF:Wn,$$asyncCallback:Ge,$$jqLite:_e})}])}function pe(){return++Si}function $e(t){return t.replace(Oi,function(t,e,n,r){return r?n.toUpperCase():n}).replace(Ei,"Moz$1")}function me(t){return!Mi.test(t)}function ge(t){var e=t.nodeType;return e===gi||!e||e===bi}function ve(t,e){var n,r,i,o,s=e.createDocumentFragment(),u=[];if(me(t))u.push(e.createTextNode(t));else{for(n=n||s.appendChild(e.createElement("div")),r=(Pi.exec(t)||["",""])[1].toLowerCase(),i=qi[r]||qi._default,n.innerHTML=i[1]+t.replace(Vi,"<$1></$2>")+i[2],o=i[0];o--;)n=n.lastChild;u=_(u,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",a(u,function(t){s.appendChild(t)}),s}function ye(t,n){n=n||e;var r;return(r=Ti.exec(t))?[n.createElement(r[1])]:(r=ve(t,n))?r.childNodes:[]}function be(t){if(t instanceof be)return t;var e;if(b(t)&&(t=fi(t),e=!0),!(this instanceof be)){if(e&&"<"!=t.charAt(0))throw Ni("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new be(t)}e?Ne(this,ye(t)):Ne(this,t)}function we(t){return t.cloneNode(!0)}function xe(t,e){if(e||Se(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Se(n[r])}function ke(t,e,n,r){if(v(r))throw Ni("offargs","jqLite#off() does not support the `selector` argument");var i=Ce(t),o=i&&i.events,s=i&&i.handle;if(s)if(e)a(e.split(" "),function(e){if(v(n)){var r=o[e];if(q(r||[],n),r&&r.length>0)return}Ai(t,e,s),delete o[e]});else for(e in o)"$destroy"!==e&&Ai(t,e,s),delete o[e]}function Se(t,e){var r=t.ng339,i=r&&ki[r];if(i){if(e)return delete i.data[e],void 0;i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),ke(t)),delete ki[r],t.ng339=n}}function Ce(t,e){var r=t.ng339,i=r&&ki[r];return e&&!i&&(t.ng339=r=pe(),i=ki[r]={events:{},data:{},handle:n}),i}function Ae(t,e,n){if(ge(t)){var r=v(n),i=!r&&e&&!y(e),a=!e,o=Ce(t,!i),s=o&&o.data;if(r)s[e]=n;else{if(a)return s;if(i)return s&&s[e];f(s,e)}}}function Oe(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function Ee(t,e){e&&t.setAttribute&&a(e.split(" "),function(e){t.setAttribute("class",fi((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+fi(e)+" "," ")))})}function je(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");a(e.split(" "),function(t){t=fi(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",fi(n))}}function Ne(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var r=0;n>r;r++)t[t.length++]=e[r]}else t[t.length++]=e}}function Te(t,e){return Me(t,"$"+(e||"ngController")+"Controller")}function Me(t,e,r){t.nodeType==bi&&(t=t.documentElement);for(var i=ci(e)?e:[e];t;){for(var a=0,o=i.length;o>a;a++)if((r=Qr.data(t,i[a]))!==n)return r;t=t.parentNode||t.nodeType===wi&&t.host}}function Pe(t){for(xe(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function Ve(t,e){e||xe(t);var n=t.parentNode;n&&n.removeChild(t)}function qe(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):Qr(n).on("load",e)}function De(t,e){var n=Ri[e.toLowerCase()];return n&&Ii[V(t)]&&n}function Re(t,e){var n=t.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&_i[e]}function Ie(t,e){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=e[r||n.type],a=i?i.length:0;if(a){if(g(n.immediatePropagationStopped)){var o=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),o&&o.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},a>1&&(i=R(i));for(var s=0;a>s;s++)n.isImmediatePropagationStopped()||i[s].call(t,n)}};return n.elem=t,n}function _e(){this.$get=function(){return f(be,{hasClass:function(t,e){return t.attr&&(t=t[0]),Oe(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),je(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),Ee(t,e)}})}}function Ue(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var r=typeof t;return n="function"==r||"object"==r&&null!==t?t.$$hashKey=r+":"+(e||l)():r+":"+t}function Le(t,e){if(e){var n=0;this.nextUid=function(){return++n}}a(t,this.put,this)}function Fe(t){var e=t.toString().replace(Hi,""),n=e.match(Ui);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function He(t,e,n){var r,i,o,s;if("function"==typeof t){if(!(r=t.$inject)){if(r=[],t.length){if(e)throw b(n)&&n||(n=t.name||Fe(t)),Bi("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=t.toString().replace(Hi,""),o=i.match(Ui),a(o[1].split(Li),function(t){t.replace(Fi,function(t,e,n){r.push(n)})})}t.$inject=r}}else ci(t)?(s=t.length-1,ae(t[s],"fn"),r=t.slice(0,s)):ae(t,"fn",!0);return r}function Be(t,e){function r(t){return function(e,n){return y(e)?(a(e,u(t)),void 0):t(e,n)}}function i(t,e){if(oe(t,"service"),(k(e)||ci(e))&&(e=A.instantiate(e)),!e.$get)throw Bi("pget","Provider '{0}' must define $get factory method.",t);return C[t+w]=e}function o(t,e){return function(){var n=E.invoke(e,this);if(g(n))throw Bi("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function s(t,e,n){return i(t,{$get:n!==!1?o(t,e):e})}function l(t,e){return s(t,["$injector",function(t){return t.instantiate(e)}])}function c(t,e){return s(t,m(e),!1)}function f(t,e){oe(t,"constant"),C[t]=e,O[t]=e}function d(t,e){var n=A.get(t+w),r=n.$get;n.$get=function(){var t=E.invoke(r,n);return E.invoke(e,null,{$delegate:t})}}function h(t){var e,n=[];return a(t,function(t){function r(t){var e,n;for(e=0,n=t.length;n>e;e++){var r=t[e],i=A.get(r[0]);i[r[1]].apply(i,r[2])}}if(!S.get(t)){S.put(t,!0);try{b(t)?(e=ei(t),n=n.concat(h(e.requires)).concat(e._runBlocks),r(e._invokeQueue),r(e._configBlocks)):k(t)?n.push(A.invoke(t)):ci(t)?n.push(A.invoke(t)):ae(t,"module")}catch(i){throw ci(t)&&(t=t[t.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),Bi("modulerr","Failed to instantiate module {0} due to:\n{1}",t,i.stack||i.message||i)}}}),n}function $(t,n){function r(e,r){if(t.hasOwnProperty(e)){if(t[e]===v)throw Bi("cdep","Circular dependency found: {0}",e+" <- "+x.join(" <- "));return t[e]}try{return x.unshift(e),t[e]=v,t[e]=n(e,r)}catch(i){throw t[e]===v&&delete t[e],i}finally{x.shift()}}function i(t,n,i,a){"string"==typeof i&&(a=i,i=null);var o,s,u,l=[],c=Be.$$annotate(t,e,a);for(s=0,o=c.length;o>s;s++){if(u=c[s],"string"!=typeof u)throw Bi("itkn","Incorrect injection token! Expected service name as string, got {0}",u);l.push(i&&i.hasOwnProperty(u)?i[u]:r(u,a))}return ci(t)&&(t=t[o]),t.apply(n,l)}function a(t,e,n){var r=Object.create((ci(t)?t[t.length-1]:t).prototype||null),a=i(t,r,e,n);return y(a)||k(a)?a:r}return{invoke:i,instantiate:a,get:r,annotate:Be.$$annotate,has:function(e){return C.hasOwnProperty(e+w)||t.hasOwnProperty(e)}}}e=e===!0;var v={},w="Provider",x=[],S=new Le([],!0),C={$provide:{provider:r(i),factory:r(s),service:r(l),value:r(c),constant:r(f),decorator:d}},A=C.$injector=$(C,function(t,e){throw si.isString(e)&&x.push(e),Bi("unpr","Unknown provider: {0}",x.join(" <- "))}),O={},E=O.$injector=$(O,function(t,e){var r=A.get(t+w,e);return E.invoke(r.$get,r,n,t)});return a(h(t),function(t){E.invoke(t||p)}),E}function ze(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,r){function i(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===V(t)?(e=t,!0):void 0}),e}function a(){var t=s.yOffset;if(k(t))t=t();else if(M(t)){var n=t[0],r=e.getComputedStyle(n);t="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else w(t)||(t=0);return t}function o(t){if(t){t.scrollIntoView();var n=a();if(n){var r=t.getBoundingClientRect().top;e.scrollBy(0,r-n)}}else e.scrollTo(0,0)}function s(){var t,e=n.hash();e?(t=u.getElementById(e))?o(t):(t=i(u.getElementsByName(e)))?o(t):"top"===e&&o(null):o(null)}var u=e.document;return t&&r.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&qe(function(){r.$evalAsync(s)})}),s}]}function Ge(){this.$get=["$$rAF","$timeout",function(t,e){return t.supported?function(e){return t(e)}:function(t){return e(t,0,!1)}}]}function We(t,e,r,i){function o(t){try{t.apply(null,U(arguments,1))}finally{if(k--,0===k)for(;S.length;)try{S.pop()()}catch(e){r.error(e)}}}function s(t){var e=t.indexOf("#");return-1===e?"":t.substr(e+1)}function u(t,e){!function n(){a(A,function(t){t()}),C=e(n,t)}()}function l(){c(),f()}function c(){O=t.history.state,O=g(O)?null:O,I(O,V)&&(O=V),V=O}function f(){(j!==h.url()||E!==O)&&(j=h.url(),E=O,a(M,function(t){t(h.url(),O)}))}function d(t){try{return decodeURIComponent(t)}catch(e){return t}}var h=this,$=e[0],m=t.location,v=t.history,y=t.setTimeout,w=t.clearTimeout,x={};h.isMock=!1;var k=0,S=[];h.$$completeOutstandingRequest=o,h.$$incOutstandingRequestCount=function(){k++},h.notifyWhenNoOutstandingRequests=function(t){a(A,function(t){t()}),0===k?t():S.push(t)};var C,A=[];h.addPollFn=function(t){return g(C)&&u(100,y),A.push(t),t};var O,E,j=m.href,N=e.find("base"),T=null;c(),E=O,h.url=function(e,n,r){if(g(r)&&(r=null),m!==t.location&&(m=t.location),v!==t.history&&(v=t.history),e){var a=E===r;if(j===e&&(!i.history||a))return h;var o=j&&xn(j)===xn(e);return j=e,E=r,!i.history||o&&a?(o||(T=e),n?m.replace(e):o?m.hash=s(e):m.href=e):(v[n?"replaceState":"pushState"](r,"",e),c(),E=O),h}return T||m.href.replace(/%27/g,"'")},h.state=function(){return O};var M=[],P=!1,V=null;h.onUrlChange=function(e){return P||(i.history&&Qr(t).on("popstate",l),Qr(t).on("hashchange",l),P=!0),M.push(e),e},h.$$checkUrlChange=f,h.baseHref=function(){var t=N.attr("href");return t?t.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var q={},D="",R=h.baseHref();h.cookies=function(t,e){var i,a,o,s,u;if(!t){if($.cookie!==D)for(D=$.cookie,a=D.split("; "),q={},s=0;s<a.length;s++)o=a[s],u=o.indexOf("="),u>0&&(t=d(o.substring(0,u)),q[t]===n&&(q[t]=d(o.substring(u+1))));return q}e===n?$.cookie=encodeURIComponent(t)+"=;path="+R+";expires=Thu, 01 Jan 1970 00:00:00 GMT":b(e)&&(i=($.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)+";path="+R).length+1,i>4096&&r.warn("Cookie '"+t+"' possibly not set or overflowed because it was too large ("+i+" > 4096 bytes)!"))},h.defer=function(t,e){var n;return k++,n=y(function(){delete x[n],o(t)},e||0),x[n]=!0,n},h.defer.cancel=function(t){return x[t]?(delete x[t],w(t),o(p),!0):!1}}function Je(){this.$get=["$window","$log","$sniffer","$document",function(t,e,n,r){return new We(t,r,e,n)}]}function Ye(){this.$get=function(){function t(t,n){function i(t){t!=d&&(h?h==t&&(h=t.n):h=t,a(t.n,t.p),a(t,d),d=t,d.n=null)}function a(t,e){t!=e&&(t&&(t.p=e),e&&(e.n=t))}if(t in e)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var o=0,s=f({},n,{id:t}),u={},l=n&&n.capacity||Number.MAX_VALUE,c={},d=null,h=null;return e[t]={put:function(t,e){if(l<Number.MAX_VALUE){var n=c[t]||(c[t]={key:t});i(n)}if(!g(e))return t in u||o++,u[t]=e,o>l&&this.remove(h.key),e},get:function(t){if(l<Number.MAX_VALUE){var e=c[t];if(!e)return;i(e)}return u[t]},remove:function(t){if(l<Number.MAX_VALUE){var e=c[t];if(!e)return;e==d&&(d=e.p),e==h&&(h=e.n),a(e.n,e.p),delete c[t]}delete u[t],o--},removeAll:function(){u={},o=0,c={},d=h=null},destroy:function(){u=null,s=null,c=null,delete e[t]},info:function(){return f({},s,{size:o})}}}var e={};return t.info=function(){var t={};return a(e,function(e,n){t[n]=e.info()}),t},t.get=function(t){return e[t]},t}}function Ze(){this.$get=["$cacheFactory",function(t){return t("templates")}]}function Ke(t,r){function i(t,e){var n=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,r={};return a(t,function(t,i){var a=t.match(n);if(!a)throw Wi("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",e,i,t);r[i]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||i}}),r}var o={},s="Directive",l=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,c=/(([\w\-]+)(?:\:([^;]+))?;?)/,d=P("ngSrc,ngSrcset,src,srcset"),g=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,w=/^(on[a-z]+|formaction)$/;this.directive=function S(e,n){return oe(e,"directive"),b(e)?(ie(n,"directiveFactory"),o.hasOwnProperty(e)||(o[e]=[],t.factory(e+s,["$injector","$exceptionHandler",function(t,n){var r=[];return a(o[e],function(a,o){try{var s=t.invoke(a);k(s)?s={compile:m(s)}:!s.compile&&s.link&&(s.compile=m(s.link)),s.priority=s.priority||0,s.index=o,s.name=s.name||e,s.require=s.require||s.controller&&s.name,s.restrict=s.restrict||"EA",y(s.scope)&&(s.$$isolateBindings=i(s.scope,s.name)),r.push(s)}catch(u){n(u)}}),r}])),o[e].push(n)):a(e,u(S)),this},this.aHrefSanitizationWhitelist=function(t){return v(t)?(r.aHrefSanitizationWhitelist(t),this):r.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(t){return v(t)?(r.imgSrcSanitizationWhitelist(t),this):r.imgSrcSanitizationWhitelist()};var x=!0;this.debugInfoEnabled=function(t){return v(t)?(x=t,this):x},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(t,r,i,u,m,v,S,C,O,E,j){function N(t,e){try{t.addClass(e)}catch(n){}}function T(t,e,n,r,i){t instanceof Qr||(t=Qr(t)),a(t,function(e,n){e.nodeType==vi&&e.nodeValue.match(/\S+/)&&(t[n]=Qr(e).wrap("<span></span>").parent()[0])});var o=P(t,e,t,n,r,i);T.$$addScopeClass(t);var s=null;return function(e,n,r){ie(e,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,a=r.transcludeControllers,u=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),s||(s=M(u));var l;if(l="html"!==s?Qr(X(s,Qr("<div>").append(t).html())):n?Di.clone.call(t):t,a)for(var c in a)l.data("$"+c+"Controller",a[c].instance);return T.$$addScopeInfo(l,e),n&&n(l,e),o&&o(e,l,l,i),l}}function M(t){var e=t&&t[0];return e?"foreignobject"!==V(e)&&e.toString().match(/SVG/)?"svg":"html":"html"}function P(t,e,r,i,a,o){function s(t,r,i,a){var o,s,u,l,c,f,d,h,m;if(p){var g=r.length;for(m=new Array(g),c=0;c<$.length;c+=3)d=$[c],m[d]=r[d]}else m=r;for(c=0,f=$.length;f>c;)u=m[$[c++]],o=$[c++],s=$[c++],o?(o.scope?(l=t.$new(),T.$$addScopeInfo(Qr(u),l)):l=t,h=o.transcludeOnThisElement?D(t,o.transclude,a,o.elementTranscludeOnThisElement):!o.templateOnThisElement&&a?a:!a&&e?D(t,e):null,o(s,l,u,i,h)):s&&s(t,u.childNodes,n,a)}for(var u,l,c,f,d,h,p,$=[],m=0;m<t.length;m++)u=new oe,l=R(t[m],[],u,0===m?i:n,a),c=l.length?F(l,t[m],u,e,r,null,[],[],o):null,c&&c.scope&&T.$$addScopeClass(u.$$element),d=c&&c.terminal||!(f=t[m].childNodes)||!f.length?null:P(f,c?(c.transcludeOnThisElement||!c.templateOnThisElement)&&c.transclude:e),(c||d)&&($.push(m,c,d),h=!0,p=p||c),o=null;return h?s:null}function D(t,e,n){var r=function(r,i,a,o,s){return r||(r=t.$new(!1,s),r.$$transcluded=!0),e(r,i,{parentBoundTranscludeFn:n,transcludeControllers:a,futureParentElement:o})};return r}function R(t,e,n,r,i){var a,o,s=t.nodeType,u=n.$attr;switch(s){case gi:B(e,Xe(V(t)),"E",r,i);for(var f,d,h,p,$,m,g=t.attributes,v=0,w=g&&g.length;w>v;v++){var x=!1,k=!1;f=g[v],d=f.name,$=fi(f.value),p=Xe(d),(m=fe.test(p))&&(d=d.replace(Ji,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var S=p.replace(/(Start|End)$/,"");G(S)&&p===S+"Start"&&(x=d,k=d.substr(0,d.length-5)+"end",d=d.substr(0,d.length-6)),h=Xe(d.toLowerCase()),u[h]=d,(m||!n.hasOwnProperty(h))&&(n[h]=$,De(t,h)&&(n[h]=!0)),te(t,e,$,h,m),B(e,h,"A",r,i,x,k)}if(o=t.className,y(o)&&(o=o.animVal),b(o)&&""!==o)for(;a=c.exec(o);)h=Xe(a[2]),B(e,h,"C",r,i)&&(n[h]=fi(a[3])),o=o.substr(a.index+a[0].length);break;case vi:K(e,t.nodeValue);break;case yi:try{a=l.exec(t.nodeValue),a&&(h=Xe(a[1]),B(e,h,"M",r,i)&&(n[h]=fi(a[2])))}catch(C){}}return e.sort(Y),e}function _(t,e,n){var r=[],i=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Wi("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==gi&&(t.hasAttribute(e)&&i++,t.hasAttribute(n)&&i--),r.push(t),t=t.nextSibling}while(i>0)}else r.push(t);return Qr(r)}function L(t,e,n){return function(r,i,a,o,s){return i=_(i[0],e,n),t(r,i,a,o,s)}}function F(t,o,s,u,l,c,f,d,h){function p(t,e,n,r){t&&(n&&(t=L(t,n,r)),t.require=C.require,t.directiveName=O,(V===C||C.$$isolateScope)&&(t=re(t,{isolateScope:!0})),f.push(t)),e&&(n&&(e=L(e,n,r)),e.require=C.require,e.directiveName=O,(V===C||C.$$isolateScope)&&(e=re(e,{isolateScope:!0})),d.push(e))}function $(t,e,n,r){var i,o,s="data",u=!1,l=n;if(b(e)){if(o=e.match(g),e=e.substring(o[0].length),o[3]&&(o[1]?o[3]=null:o[1]=o[3]),"^"===o[1]?s="inheritedData":"^^"===o[1]&&(s="inheritedData",l=n.parent()),"?"===o[2]&&(u=!0),i=null,r&&"data"===s&&(i=r[e])&&(i=i.instance),i=i||l[s]("$"+e+"Controller"),!i&&!u)throw Wi("ctreq","Controller '{0}', required by directive '{1}', can't be found!",e,t);return i||null}return ci(e)&&(i=[],a(e,function(e){i.push($(t,e,n,r))})),i}function w(t,e,i,u,l){function c(t,e,r){var i;return A(t)||(r=e,e=t,t=n),G&&(i=w),r||(r=G?k.parent():k),l(t,e,i,r,j)}var h,p,g,y,b,w,x,k,C;if(o===i?(C=s,k=s.$$element):(k=Qr(i),C=new oe(k,s)),V&&(b=e.$new(!0)),l&&(x=c,x.$$boundTransclude=l),P&&(S={},w={},a(P,function(t){var n,r={$scope:t===V||t.$$isolateScope?b:e,$element:k,$attrs:C,$transclude:x};y=t.controller,"@"==y&&(y=C[t.name]),n=v(y,r,!0,t.controllerAs),w[t.name]=n,G||k.data("$"+t.name+"Controller",n.instance),S[t.name]=n})),V){T.$$addScopeInfo(k,b,!0,!(q&&(q===V||q===V.$$originalDirective))),T.$$addScopeClass(k,!0);var O=S&&S[V.name],E=b;O&&O.identifier&&V.bindToController===!0&&(E=O.instance),a(b.$$isolateBindings=V.$$isolateBindings,function(t,n){var i,a,o,s,u=t.attrName,l=t.optional,c=t.mode;switch(c){case"@":C.$observe(u,function(t){E[n]=t}),C.$$observers[u].$$scope=e,C[u]&&(E[n]=r(C[u])(e));break;case"=":if(l&&!C[u])return;a=m(C[u]),s=a.literal?I:function(t,e){return t===e||t!==t&&e!==e},o=a.assign||function(){throw i=E[n]=a(e),Wi("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",C[u],V.name)},i=E[n]=a(e);var f=function(t){return s(t,E[n])||(s(t,i)?o(e,t=E[n]):E[n]=t),i=t};f.$stateful=!0;var d;d=t.collection?e.$watchCollection(C[u],f):e.$watch(m(C[u],f),null,a.literal),b.$on("$destroy",d);break;case"&":a=m(C[u]),E[n]=function(t){return a(e,t)}}})}for(S&&(a(S,function(t){t()}),S=null),h=0,p=f.length;p>h;h++)g=f[h],ae(g,g.isolateScope?b:e,k,C,g.require&&$(g.directiveName,g.require,k,w),x);var j=e;for(V&&(V.template||null===V.templateUrl)&&(j=b),t&&t(j,i.childNodes,n,l),h=d.length-1;h>=0;h--)g=d[h],ae(g,g.isolateScope?b:e,k,C,g.require&&$(g.directiveName,g.require,k,w),x)}h=h||{};for(var x,S,C,O,E,j,N,M=-Number.MAX_VALUE,P=h.controllerDirectives,V=h.newIsolateScopeDirective,q=h.templateDirective,D=h.nonTlbTranscludeDirective,F=!1,B=!1,G=h.hasElementTranscludeDirective,Y=s.$$element=Qr(o),K=c,Q=u,te=0,ne=t.length;ne>te;te++){C=t[te];var ie=C.$$start,se=C.$$end;if(ie&&(Y=_(o,ie,se)),E=n,M>C.priority)break;if((N=C.scope)&&(C.templateUrl||(y(N)?(Z("new/isolated scope",V||x,C,Y),V=C):Z("new/isolated scope",V,C,Y)),x=x||C),O=C.name,!C.templateUrl&&C.controller&&(N=C.controller,P=P||{},Z("'"+O+"' controller",P[O],C,Y),P[O]=C),(N=C.transclude)&&(F=!0,C.$$tlb||(Z("transclusion",D,C,Y),D=C),"element"==N?(G=!0,M=C.priority,E=Y,Y=s.$$element=Qr(e.createComment(" "+O+": "+s[O]+" ")),o=Y[0],ee(l,U(E),o),Q=T(E,u,M,K&&K.name,{nonTlbTranscludeDirective:D})):(E=Qr(we(o)).contents(),Y.empty(),Q=T(E,u))),C.template)if(B=!0,Z("template",q,C,Y),q=C,N=k(C.template)?C.template(Y,s):C.template,N=ce(N),C.replace){if(K=C,E=me(N)?[]:tn(X(C.templateNamespace,fi(N))),o=E[0],1!=E.length||o.nodeType!==gi)throw Wi("tplrt","Template for directive '{0}' must have exactly one root element. {1}",O,"");ee(l,Y,o);var ue={$attr:{}},le=R(o,[],ue),fe=t.splice(te+1,t.length-(te+1));V&&H(le),t=t.concat(le).concat(fe),W(s,ue),ne=t.length}else Y.html(N);if(C.templateUrl)B=!0,Z("template",q,C,Y),q=C,C.replace&&(K=C),w=J(t.splice(te,t.length-te),Y,s,l,F&&Q,f,d,{controllerDirectives:P,newIsolateScopeDirective:V,templateDirective:q,nonTlbTranscludeDirective:D}),ne=t.length;else if(C.compile)try{j=C.compile(Y,s,Q),k(j)?p(null,j,ie,se):j&&p(j.pre,j.post,ie,se)}catch(de){i(de,z(Y))}C.terminal&&(w.terminal=!0,M=Math.max(M,C.priority))}return w.scope=x&&x.scope===!0,w.transcludeOnThisElement=F,w.elementTranscludeOnThisElement=G,w.templateOnThisElement=B,w.transclude=Q,h.hasElementTranscludeDirective=G,w}function H(t){for(var e=0,n=t.length;n>e;e++)t[e]=h(t[e],{$$isolateScope:!0})}function B(e,r,a,u,l,c,f){if(r===l)return null;var d=null;if(o.hasOwnProperty(r))for(var p,$=t.get(r+s),m=0,g=$.length;g>m;m++)try{p=$[m],(u===n||u>p.priority)&&-1!=p.restrict.indexOf(a)&&(c&&(p=h(p,{$$start:c,$$end:f})),e.push(p),d=p)
+
}catch(v){i(v)}return d}function G(e){if(o.hasOwnProperty(e))for(var n,r=t.get(e+s),i=0,a=r.length;a>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function W(t,e){var n=e.$attr,r=t.$attr,i=t.$$element;a(t,function(r,i){"$"!=i.charAt(0)&&(e[i]&&e[i]!==r&&(r+=("style"===i?";":" ")+e[i]),t.$set(i,r,!0,n[i]))}),a(e,function(e,a){"class"==a?(N(i,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==a?(i.attr("style",i.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==a.charAt(0)||t.hasOwnProperty(a)||(t[a]=e,r[a]=n[a])})}function J(t,e,n,r,i,o,s,l){var c,f,d=[],p=e[0],$=t.shift(),m=h($,{templateUrl:null,transclude:null,replace:null,$$originalDirective:$}),g=k($.templateUrl)?$.templateUrl(e,n):$.templateUrl,v=$.templateNamespace;return e.empty(),u(O.getTrustedResourceUrl(g)).then(function(u){var h,b,w,x;if(u=ce(u),$.replace){if(w=me(u)?[]:tn(X(v,fi(u))),h=w[0],1!=w.length||h.nodeType!==gi)throw Wi("tplrt","Template for directive '{0}' must have exactly one root element. {1}",$.name,g);b={$attr:{}},ee(r,e,h);var k=R(h,[],b);y($.scope)&&H(k),t=k.concat(t),W(n,b)}else h=p,e.html(u);for(t.unshift(m),c=F(t,h,n,i,e,$,o,s,l),a(r,function(t,n){t==h&&(r[n]=e[0])}),f=P(e[0].childNodes,i);d.length;){var S=d.shift(),C=d.shift(),A=d.shift(),O=d.shift(),E=e[0];if(!S.$$destroyed){if(C!==p){var j=C.className;l.hasElementTranscludeDirective&&$.replace||(E=we(h)),ee(A,Qr(C),E),N(Qr(E),j)}x=c.transcludeOnThisElement?D(S,c.transclude,O):O,c(f,S,E,r,x)}}d=null}),function(t,e,n,r,i){var a=i;e.$$destroyed||(d?d.push(e,n,r,a):(c.transcludeOnThisElement&&(a=D(e,c.transclude,i)),c(f,e,n,r,a)))}}function Y(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name<e.name?-1:1:t.index-e.index}function Z(t,e,n,r){if(e)throw Wi("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",e.name,n.name,t,z(r))}function K(t,e){var n=r(e,!0);n&&t.push({priority:0,compile:function(t){var e=t.parent(),r=!!e.length;return r&&T.$$addBindingClass(e),function(t,e){var i=e.parent();r||T.$$addBindingClass(i),T.$$addBindingInfo(i,n.expressions),t.$watch(n,function(t){e[0].nodeValue=t})}}})}function X(t,n){switch(t=Wr(t||"html")){case"svg":case"math":var r=e.createElement("div");return r.innerHTML="<"+t+">"+n+"</"+t+">",r.childNodes[0].childNodes;default:return n}}function Q(t,e){if("srcdoc"==e)return O.HTML;var n=V(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?O.RESOURCE_URL:void 0}function te(t,e,n,i,a){var o=Q(t,i);a=d[i]||a;var s=r(n,!0,o,a);if(s){if("multiple"===i&&"select"===V(t))throw Wi("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",z(t));e.push({priority:100,compile:function(){return{pre:function(t,e,u){var l=u.$$observers||(u.$$observers={});if(w.test(i))throw Wi("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var c=u[i];c!==n&&(s=c&&r(c,!0,o,a),n=c),s&&(u[i]=s(t),(l[i]||(l[i]=[])).$$inter=!0,(u.$$observers&&u.$$observers[i].$$scope||t).$watch(s,function(t,e){"class"===i&&t!=e?u.$updateClass(t,e):u.$set(i,t)}))}}}})}}function ee(t,n,r){var i,a,o=n[0],s=n.length,u=o.parentNode;if(t)for(i=0,a=t.length;a>i;i++)if(t[i]==o){t[i++]=r;for(var l=i,c=l+s-1,f=t.length;f>l;l++,c++)f>c?t[l]=t[c]:delete t[l];t.length-=s-1,t.context===o&&(t.context=r);break}u&&u.replaceChild(r,o);var d=e.createDocumentFragment();d.appendChild(o),Qr(r).data(Qr(o).data()),ti?(li=!0,ti.cleanData([o])):delete Qr.cache[o[Qr.expando]];for(var h=1,p=n.length;p>h;h++){var $=n[h];Qr($).remove(),d.appendChild($),delete n[h]}n[0]=r,n.length=1}function re(t,e){return f(function(){return t.apply(null,arguments)},t,e)}function ae(t,e,n,r,a,o){try{t(e,n,r,a,o)}catch(s){i(s,z(n))}}var oe=function(t,e){if(e){var n,r,i,a=Object.keys(e);for(n=0,r=a.length;r>n;n++)i=a[n],this[i]=e[i]}else this.$attr={};this.$$element=t};oe.prototype={$normalize:Xe,$addClass:function(t){t&&t.length>0&&E.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&E.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=Qe(t,e);n&&n.length&&E.addClass(this.$$element,n);var r=Qe(e,t);r&&r.length&&E.removeClass(this.$$element,r)},$set:function(t,e,r,o){var s,u=this.$$element[0],l=De(u,t),c=Re(u,t),f=t;if(l?(this.$$element.prop(t,e),o=l):c&&(this[c]=e,f=c),this[t]=e,o?this.$attr[t]=o:(o=this.$attr[t],o||(this.$attr[t]=o=ne(t,"-"))),s=V(this.$$element),"a"===s&&"href"===t||"img"===s&&"src"===t)this[t]=e=j(e,"src"===t);else if("img"===s&&"srcset"===t){for(var d="",h=fi(e),p=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,$=/\s/.test(h)?p:/(,)/,m=h.split($),g=Math.floor(m.length/2),v=0;g>v;v++){var y=2*v;d+=j(fi(m[y]),!0),d+=" "+fi(m[y+1])}var b=fi(m[2*v]).split(/\s/);d+=j(fi(b[0]),!0),2===b.length&&(d+=" "+fi(b[1])),this[t]=e=d}r!==!1&&(null===e||e===n?this.$$element.removeAttr(o):this.$$element.attr(o,e));var w=this.$$observers;w&&a(w[f],function(t){try{t(e)}catch(n){i(n)}})},$observe:function(t,e){var n=this,r=n.$$observers||(n.$$observers=le()),i=r[t]||(r[t]=[]);return i.push(e),S.$evalAsync(function(){!i.$$inter&&n.hasOwnProperty(t)&&e(n[t])}),function(){q(i,e)}}};var se=r.startSymbol(),ue=r.endSymbol(),ce="{{"==se||"}}"==ue?$:function(t){return t.replace(/\{\{/g,se).replace(/}}/g,ue)},fe=/^ngAttr[A-Z]/;return T.$$addBindingInfo=x?function(t,e){var n=t.data("$binding")||[];ci(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:p,T.$$addBindingClass=x?function(t){N(t,"ng-binding")}:p,T.$$addScopeInfo=x?function(t,e,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(i,e)}:p,T.$$addScopeClass=x?function(t,e){N(t,e?"ng-isolate-scope":"ng-scope")}:p,T}]}function Xe(t){return $e(t.replace(Ji,""))}function Qe(t,e){var n="",r=t.split(/\s+/),i=e.split(/\s+/);t:for(var a=0;a<r.length;a++){for(var o=r[a],s=0;s<i.length;s++)if(o==i[s])continue t;n+=(n.length>0?" ":"")+o}return n}function tn(t){t=Qr(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===yi&&ri.call(t,e,1)}return t}function en(){var t={},e=!1,i=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(e,n){oe(e,"controller"),y(e)?f(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(a,o){function s(t,e,n,i){if(!t||!y(t.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,e);t.$scope[e]=n}return function(r,u,l,c){var d,h,p,$;if(l=l===!0,c&&b(c)&&($=c),b(r)){if(h=r.match(i),!h)throw Yi("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);p=h[1],$=$||h[3],r=t.hasOwnProperty(p)?t[p]:se(u.$scope,p,!0)||(e?se(o,p,!0):n),ae(r,p,!0)}if(l){var m=(ci(r)?r[r.length-1]:r).prototype;return d=Object.create(m||null),$&&s(u,$,d,p||r.name),f(function(){return a.invoke(r,d,u,p),d},{instance:d,identifier:$})}return d=a.instantiate(r,u,p),$&&s(u,$,d,p||r.name),d}}]}function nn(){this.$get=["$window",function(t){return Qr(t.document)}]}function rn(){this.$get=["$log",function(t){return function(){t.error.apply(t,arguments)}}]}function an(t,e){if(b(t)){var n=t.replace(ta,"").trim();if(n){var r=e("Content-Type");(r&&0===r.indexOf(Zi)||on(n))&&(t=B(n))}}return t}function on(t){var e=t.match(Xi);return e&&Qi[e[0]].test(t)}function sn(t){var e,n,r,i=le();return t?(a(t.split("\n"),function(t){r=t.indexOf(":"),e=Wr(fi(t.substr(0,r))),n=fi(t.substr(r+1)),e&&(i[e]=i[e]?i[e]+", "+n:n)}),i):i}function un(t){var e=y(t)?t:n;return function(n){if(e||(e=sn(t)),n){var r=e[Wr(n)];return void 0===r&&(r=null),r}return e}}function ln(t,e,n,r){return k(r)?r(t,e,n):(a(r,function(r){t=r(t,e,n)}),t)}function cn(t){return t>=200&&300>t}function fn(){var t=this.defaults={transformResponse:[an],transformRequest:[function(t){return!y(t)||O(t)||j(t)||E(t)?t:H(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:R(Ki),put:R(Ki),patch:R(Ki)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},e=!1;this.useApplyAsync=function(t){return v(t)?(e=!!t,this):e};var i=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(o,u,l,c,d,h){function p(e){function i(t){var e=f({},t);return e.data=t.data?ln(t.data,t.headers,t.status,u.transformResponse):t.data,cn(t.status)?e:d.reject(e)}function o(t){var e,n={};return a(t,function(t,r){k(t)?(e=t(),null!=e&&(n[r]=e)):n[r]=t}),n}function s(e){var n,r,i,a=t.headers,s=f({},e.headers);a=f({},a.common,a[Wr(e.method)]);t:for(n in a){r=Wr(n);for(i in s)if(Wr(i)===r)continue t;s[n]=a[n]}return o(s)}if(!si.isObject(e))throw r("$http")("badreq","Http request configuration must be an object.  Received: {0}",e);var u=f({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse},e);u.headers=s(e),u.method=Yr(u.method);var l=function(e){var r=e.headers,o=ln(e.data,un(r),n,e.transformRequest);return g(o)&&a(r,function(t,e){"content-type"===Wr(e)&&delete r[e]}),g(e.withCredentials)&&!g(t.withCredentials)&&(e.withCredentials=t.withCredentials),w(e,o).then(i,i)},c=[l,n],h=d.when(u);for(a(A,function(t){(t.request||t.requestError)&&c.unshift(t.request,t.requestError),(t.response||t.responseError)&&c.push(t.response,t.responseError)});c.length;){var p=c.shift(),$=c.shift();h=h.then(p,$)}return h.success=function(t){return h.then(function(e){t(e.data,e.status,e.headers,u)}),h},h.error=function(t){return h.then(null,function(e){t(e.data,e.status,e.headers,u)}),h},h}function $(){a(arguments,function(t){p[t]=function(e,n){return p(f(n||{},{method:t,url:e}))}})}function m(){a(arguments,function(t){p[t]=function(e,n,r){return p(f(r||{},{method:t,url:e,data:n}))}})}function w(r,i){function a(t,n,r,i){function a(){s(n,t,r,i)}h&&(cn(t)?h.put(x,[t,n,sn(r),i]):h.remove(x)),e?c.$applyAsync(a):(a(),c.$$phase||c.$apply())}function s(t,e,n,i){e=Math.max(e,0),(cn(e)?m.resolve:m.reject)({data:t,status:e,headers:un(n),config:r,statusText:i})}function l(t){s(t.data,t.status,R(t.headers()),t.statusText)}function f(){var t=p.pendingRequests.indexOf(r);-1!==t&&p.pendingRequests.splice(t,1)}var h,$,m=d.defer(),b=m.promise,w=r.headers,x=S(r.url,r.params);if(p.pendingRequests.push(r),b.then(f,f),!r.cache&&!t.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(h=y(r.cache)?r.cache:y(t.cache)?t.cache:C),h&&($=h.get(x),v($)?T($)?$.then(l,l):ci($)?s($[1],$[0],R($[2]),$[3]):s($,200,{},"OK"):h.put(x,b)),g($)){var k=ar(r.url)?u.cookies()[r.xsrfCookieName||t.xsrfCookieName]:n;k&&(w[r.xsrfHeaderName||t.xsrfHeaderName]=k),o(r.method,x,i,a,w,r.timeout,r.withCredentials,r.responseType)}return b}function S(t,e){if(!e)return t;var n=[];return s(e,function(t,e){null===t||g(t)||(ci(t)||(t=[t]),a(t,function(t){y(t)&&(t=x(t)?t.toISOString():H(t)),n.push(Z(e)+"="+Z(t))}))}),n.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+n.join("&")),t}var C=l("$http"),A=[];return a(i,function(t){A.unshift(b(t)?h.get(t):h.invoke(t))}),p.pendingRequests=[],$("get","delete","head","jsonp"),m("post","put","patch"),p.defaults=t,p}]}function dn(){return new t.XMLHttpRequest}function hn(){this.$get=["$browser","$window","$document",function(t,e,n){return pn(t,dn,t.defer,e.angular.callbacks,n[0])}]}function pn(t,e,r,i,o){function s(t,e,n){var r=o.createElement("script"),a=null;return r.type="text/javascript",r.src=t,r.async=!0,a=function(t){Ai(r,"load",a),Ai(r,"error",a),o.body.removeChild(r),r=null;var s=-1,u="unknown";t&&("load"!==t.type||i[e].called||(t={type:"error"}),u=t.type,s="error"===t.type?404:200),n&&n(s,u)},Ci(r,"load",a),Ci(r,"error",a),o.body.appendChild(r),a}return function(o,u,l,c,f,d,h,$){function m(){b&&b(),w&&w.abort()}function g(e,i,a,o,s){S!==n&&r.cancel(S),b=w=null,e(i,a,o,s),t.$$completeOutstandingRequest(p)}if(t.$$incOutstandingRequestCount(),u=u||t.url(),"jsonp"==Wr(o)){var y="_"+(i.counter++).toString(36);i[y]=function(t){i[y].data=t,i[y].called=!0};var b=s(u.replace("JSON_CALLBACK","angular.callbacks."+y),y,function(t,e){g(c,t,i[y].data,"",e),i[y]=p})}else{var w=e();w.open(o,u,!0),a(f,function(t,e){v(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==ir(u).protocol?404:0),g(c,n,e,w.getAllResponseHeaders(),t)};var x=function(){g(c,-1,null,null,"")};if(w.onerror=x,w.onabort=x,h&&(w.withCredentials=!0),$)try{w.responseType=$}catch(k){if("json"!==$)throw k}w.send(l||null)}if(d>0)var S=r(m,d);else T(d)&&d.then(m)}}function $n(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function a(t){return"\\\\\\"+t}function o(a,o,d,h){function p(n){return n.replace(l,t).replace(c,e)}function $(t){try{return t=j(t),h&&!v(t)?t:N(t)}catch(e){var n=ea("interr","Can't interpolate: {0}\n{1}",a,e.toString());r(n)}}h=!!h;for(var m,y,b,w=0,x=[],S=[],C=a.length,A=[],O=[];C>w;){if(-1==(m=a.indexOf(t,w))||-1==(y=a.indexOf(e,m+s))){w!==C&&A.push(p(a.substring(w)));break}w!==m&&A.push(p(a.substring(w,m))),b=a.substring(m+s,y),x.push(b),S.push(n(b,$)),w=y+u,O.push(A.length),A.push("")}if(d&&A.length>1)throw ea("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);if(!o||x.length){var E=function(t){for(var e=0,n=x.length;n>e;e++){if(h&&g(t[e]))return;A[O[e]]=t[e]}return A.join("")},j=function(t){return d?i.getTrusted(d,t):i.valueOf(t)},N=function(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=H(t)}return t};return f(function(t){var e=0,n=x.length,i=new Array(n);try{for(;n>e;e++)i[e]=S[e](t);return E(i)}catch(o){var s=ea("interr","Can't interpolate: {0}\n{1}",a,o.toString());r(s)}},{exp:a,expressions:x,$$watchDelegate:function(t,e,n){var r;return t.$watchGroup(S,function(n,i){var a=E(n);k(e)&&e.call(this,a,n!==i?r:a,t),r=a},n)}})}}var s=t.length,u=e.length,l=new RegExp(t.replace(/./g,a),"g"),c=new RegExp(e.replace(/./g,a),"g");return o.startSymbol=function(){return t},o.endSymbol=function(){return e},o}]}function mn(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,r){function i(i,o,s,u){var l=e.setInterval,c=e.clearInterval,f=0,d=v(u)&&!u,h=(d?r:n).defer(),p=h.promise;return s=v(s)?s:0,p.then(null,null,i),p.$$intervalId=l(function(){h.notify(f++),s>0&&f>=s&&(h.resolve(f),c(p.$$intervalId),delete a[p.$$intervalId]),d||t.$apply()},o),a[p.$$intervalId]=h,p}var a={};return i.cancel=function(t){return t&&t.$$intervalId in a?(a[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete a[t.$$intervalId],!0):!1},i}]}function gn(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(t){return 1===t?"one":"other"}}}}function vn(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=Y(e[n]);return e.join("/")}function yn(t,e){var n=ir(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=d(n.port)||ra[n.protocol]||null}function bn(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var r=ir(t);e.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),e.$$search=W(r.search),e.$$hash=decodeURIComponent(r.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function wn(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function xn(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function kn(t){return t.replace(/(#.+)|#$/,"$1")}function Sn(t){return t.substr(0,xn(t).lastIndexOf("/")+1)}function Cn(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function An(t,e){this.$$html5=!0,e=e||"";var r=Sn(t);yn(t,this),this.$$parse=function(t){var e=wn(r,t);if(!b(e))throw ia("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,r);bn(e,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=J(this.$$search),e=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=vn(this.$$path)+(t?"?"+t:"")+e,this.$$absUrl=r+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,a){if(a&&"#"===a[0])return this.hash(a.slice(1)),!0;var o,s,u;return(o=wn(t,i))!==n?(s=o,u=(o=wn(e,o))!==n?r+(wn("/",o)||o):t+s):(o=wn(r,i))!==n?u=r+o:r==i+"/"&&(u=r),u&&this.$$parse(u),!!u}}function On(t,e){var n=Sn(t);yn(t,this),this.$$parse=function(r){function i(t,e,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),i.exec(e)?t:(r=i.exec(t),r?r[1]:t)}var a,o=wn(t,r)||wn(n,r);"#"===o.charAt(0)?(a=wn(e,o),g(a)&&(a=o)):a=this.$$html5?o:"",bn(a,this),this.$$path=i(this.$$path,a,t),this.$$compose()},this.$$compose=function(){var n=J(this.$$search),r=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=vn(this.$$path)+(n?"?"+n:"")+r,this.$$absUrl=t+(this.$$url?e+this.$$url:"")},this.$$parseLinkUrl=function(e){return xn(t)==xn(e)?(this.$$parse(e),!0):!1}}function En(t,e){this.$$html5=!0,On.apply(this,arguments);var n=Sn(t);this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var a,o;return t==xn(r)?a=r:(o=wn(n,r))?a=t+e+o:n===r+"/"&&(a=n),a&&this.$$parse(a),!!a},this.$$compose=function(){var n=J(this.$$search),r=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=vn(this.$$path)+(n?"?"+n:"")+r,this.$$absUrl=t+e+this.$$url}}function jn(t){return function(){return this[t]}}function Nn(t,e){return function(n){return g(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function Tn(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return v(e)?(t=e,this):t},this.html5Mode=function(t){return N(t)?(e.enabled=t,this):y(t)?(N(t.enabled)&&(e.enabled=t.enabled),N(t.requireBase)&&(e.requireBase=t.requireBase),N(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,a,o){function s(t,e,n){var i=l.url(),a=l.$$state;try{r.url(t,e,n),l.$$state=r.state()}catch(o){throw l.url(i),l.$$state=a,o}}function u(t,e){n.$broadcast("$locationChangeSuccess",l.absUrl(),t,l.$$state,e)}var l,c,f,d=r.baseHref(),h=r.url();if(e.enabled){if(!d&&e.requireBase)throw ia("nobase","$location in HTML5 mode requires a <base> tag to be present!");f=Cn(h)+(d||"/"),c=i.history?An:En}else f=xn(h),c=On;l=new c(f,"#"+t),l.$$parseLinkUrl(h,h),l.$$state=r.state();var p=/^\s*(javascript|mailto):/i;a.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var i=Qr(t.target);"a"!==V(i[0]);)if(i[0]===a[0]||!(i=i.parent())[0])return;var s=i.prop("href"),u=i.attr("href")||i.attr("xlink:href");y(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=ir(s.animVal).href),p.test(s)||!s||i.attr("target")||t.isDefaultPrevented()||l.$$parseLinkUrl(s,u)&&(t.preventDefault(),l.absUrl()!=r.url()&&(n.$apply(),o.angular["ff-684208-preventDefault"]=!0))}}),kn(l.absUrl())!=kn(h)&&r.url(l.absUrl(),!0);var $=!0;return r.onUrlChange(function(t,e){n.$evalAsync(function(){var r,i=l.absUrl(),a=l.$$state;l.$$parse(t),l.$$state=e,r=n.$broadcast("$locationChangeStart",t,i,e,a).defaultPrevented,l.absUrl()===t&&(r?(l.$$parse(i),l.$$state=a,s(i,!1,a)):($=!1,u(i,a)))}),n.$$phase||n.$digest()}),n.$watch(function(){var t=kn(r.url()),e=kn(l.absUrl()),a=r.state(),o=l.$$replace,c=t!==e||l.$$html5&&i.history&&a!==l.$$state;($||c)&&($=!1,n.$evalAsync(function(){var e=l.absUrl(),r=n.$broadcast("$locationChangeStart",e,t,l.$$state,a).defaultPrevented;l.absUrl()===e&&(r?(l.$$parse(t),l.$$state=a):(c&&s(e,o,a===l.$$state?null:l.$$state),u(t,a)))})),l.$$replace=!1}),l}]}function Mn(){var t=!0,e=this;this.debugEnabled=function(e){return v(e)?(t=e,this):t},this.$get=["$window",function(n){function r(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function i(t){var e=n.console||{},i=e[t]||e.log||p,o=!1;try{o=!!i.apply}catch(s){}return o?function(){var t=[];return a(arguments,function(e){t.push(r(e))}),i.apply(e,t)}:function(t,e){i(t,null==e?"":e)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function Pn(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw oa("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Vn(t,e){if(t){if(t.constructor===t)throw oa("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw oa("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw oa("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw oa("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function qn(t,e){if(t){if(t.constructor===t)throw oa("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===sa||t===ua||t===la)throw oa("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Dn(t){return t.constant}function Rn(t,e,n,r,i){Vn(t,i),Vn(e,i);for(var a,o=n.split("."),s=0;o.length>1;s++){a=Pn(o.shift(),i);var u=0===s&&e&&e[a]||t[a];u||(u={},t[a]=u),t=Vn(u,i)}return a=Pn(o.shift(),i),Vn(t[a],i),t[a]=r,r}function In(t){return"constructor"==t}function _n(t,e,r,i,a,o,s){Pn(t,o),Pn(e,o),Pn(r,o),Pn(i,o),Pn(a,o);var u=function(t){return Vn(t,o)},l=s||In(t)?u:$,c=s||In(e)?u:$,f=s||In(r)?u:$,d=s||In(i)?u:$,h=s||In(a)?u:$;return function(o,s){var u=s&&s.hasOwnProperty(t)?s:o;return null==u?u:(u=l(u[t]),e?null==u?n:(u=c(u[e]),r?null==u?n:(u=f(u[r]),i?null==u?n:(u=d(u[i]),a?null==u?n:u=h(u[a]):u):u):u):u)}}function Un(t,e){return function(n,r){return t(n,r,Vn,e)}}function Ln(t,e,r){var i=e.expensiveChecks,o=i?ma:$a,s=o[t];if(s)return s;var u=t.split("."),l=u.length;if(e.csp)s=6>l?_n(u[0],u[1],u[2],u[3],u[4],r,i):function(t,e){var a,o=0;do a=_n(u[o++],u[o++],u[o++],u[o++],u[o++],r,i)(t,e),e=n,t=a;while(l>o);return a};else{var c="";i&&(c+="s = eso(s, fe);\nl = eso(l, fe);\n");var f=i;a(u,function(t,e){Pn(t,r);var n=(e?"s":'((l&&l.hasOwnProperty("'+t+'"))?l:s)')+"."+t;(i||In(t))&&(n="eso("+n+", fe)",f=!0),c+="if(s == null) return undefined;\ns="+n+";\n"}),c+="return s;";var d=new Function("s","l","eso","fe",c);d.toString=m(c),f&&(d=Un(d,r)),s=d}return s.sharedGetter=!0,s.assign=function(e,n,r){return Rn(e,r,t,n,t)},o[t]=s,s}function Fn(t){return k(t.valueOf)?t.valueOf():ga.call(t)}function Hn(){var t=le(),e=le();this.$get=["$filter","$sniffer",function(n,r){function i(t){var e=t;return t.sharedGetter&&(e=function(e,n){return t(e,n)},e.literal=t.literal,e.constant=t.constant,e.assign=t.assign),e}function o(t,e){for(var n=0,r=t.length;r>n;n++){var i=t[n];i.constant||(i.inputs?o(i.inputs,e):-1===e.indexOf(i)&&e.push(i))}return e}function s(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=Fn(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function u(t,e,n,r){var i,a=r.$$inputs||(r.$$inputs=o(r.inputs,[]));if(1===a.length){var u=s;return a=a[0],t.$watch(function(t){var e=a(t);return s(e,u)||(i=r(t),u=e&&Fn(e)),i},e,n)}for(var l=[],c=0,f=a.length;f>c;c++)l[c]=s;return t.$watch(function(t){for(var e=!1,n=0,o=a.length;o>n;n++){var u=a[n](t);(e||(e=!s(u,l[n])))&&(l[n]=u&&Fn(u))}return e&&(i=r(t)),i},e,n)}function l(t,e,n,r){var i,a;return i=t.$watch(function(t){return r(t)},function(t,n,r){a=t,k(e)&&e.apply(this,arguments),v(t)&&r.$$postDigest(function(){v(a)&&i()})},n)}function c(t,e,n,r){function i(t){var e=!0;return a(t,function(t){v(t)||(e=!1)}),e}var o,s;return o=t.$watch(function(t){return r(t)},function(t,n,r){s=t,k(e)&&e.call(this,t,n,r),i(t)&&r.$$postDigest(function(){i(s)&&o()})},n)}function f(t,e,n,r){var i;return i=t.$watch(function(t){return r(t)},function(){k(e)&&e.apply(this,arguments),i()},n)}function d(t,e){if(!e)return t;var n=t.$$watchDelegate,r=n!==c&&n!==l,i=r?function(n,r){var i=t(n,r);return e(i,n,r)}:function(n,r){var i=t(n,r),a=e(i,n,r);return v(i)?a:i};return t.$$watchDelegate&&t.$$watchDelegate!==u?i.$$watchDelegate=t.$$watchDelegate:e.$stateful||(i.$$watchDelegate=u,i.inputs=[t]),i}var h={csp:r.csp,expensiveChecks:!1},$={csp:r.csp,expensiveChecks:!0};return function(r,a,o){var s,m,g;switch(typeof r){case"string":g=r=r.trim();var v=o?e:t;if(s=v[g],!s){":"===r.charAt(0)&&":"===r.charAt(1)&&(m=!0,r=r.substring(2));var y=o?$:h,b=new ha(y),w=new pa(b,n,y);s=w.parse(r),s.constant?s.$$watchDelegate=f:m?(s=i(s),s.$$watchDelegate=s.literal?c:l):s.inputs&&(s.$$watchDelegate=u),v[g]=s}return d(s,a);case"function":return d(r,a);default:return d(p,a)}}}]}function Bn(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return Gn(function(e){t.$evalAsync(e)},e)}]}function zn(){this.$get=["$browser","$exceptionHandler",function(t,e){return Gn(function(e){t.defer(e)},e)}]}function Gn(t,e){function i(t,e,n){function r(e){return function(n){i||(i=!0,e.call(t,n))}}var i=!1;return[r(e),r(n)]}function o(){this.$$state={status:0}}function s(t,e){return function(n){e.call(t,n)}}function u(t){var r,i,a;a=t.pending,t.processScheduled=!1,t.pending=n;for(var o=0,s=a.length;s>o;++o){i=a[o][0],r=a[o][t.status];try{k(r)?i.resolve(r(t.value)):1===t.status?i.resolve(t.value):i.reject(t.value)}catch(u){i.reject(u),e(u)}}}function l(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){u(e)}))}function c(){this.promise=new o,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function f(t){var e=new c,n=0,r=ci(t)?[]:{};return a(t,function(t,i){n++,g(t).then(function(t){r.hasOwnProperty(i)||(r[i]=t,--n||e.resolve(r))},function(t){r.hasOwnProperty(i)||e.reject(t)})}),0===n&&e.resolve(r),e.promise}var d=r("$q",TypeError),h=function(){return new c};o.prototype={then:function(t,e,n){var r=new c;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,t,e,n]),this.$$state.status>0&&l(this.$$state),r.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return m(e,!0,t)},function(e){return m(e,!1,t)},e)}},c.prototype={resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(d("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(y(t)||k(t))&&(n=t&&t.then),k(n)?(this.promise.$$state.status=-1,n.call(t,r[0],r[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,l(this.promise.$$state))}catch(a){r[1](a),e(a)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,l(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&t(function(){for(var t,i,a=0,o=r.length;o>a;a++){i=r[a][0],t=r[a][3];try{i.notify(k(t)?t(n):n)}catch(s){e(s)}}})}};var p=function(t){var e=new c;return e.reject(t),e.promise},$=function(t,e){var n=new c;return e?n.resolve(t):n.reject(t),n.promise},m=function(t,e,n){var r=null;try{k(n)&&(r=n())}catch(i){return $(i,!1)}return T(r)?r.then(function(){return $(t,e)},function(t){return $(t,!1)}):$(t,e)},g=function(t,e,n,r){var i=new c;return i.resolve(t),i.promise.then(e,n,r)},v=function b(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}if(!k(t))throw d("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof b))return new b(t);var r=new c;return t(e,n),r.promise};return v.defer=h,v.reject=p,v.when=g,v.all=f,v}function Wn(){this.$get=["$window","$timeout",function(t,e){var n=t.requestAnimationFrame||t.webkitRequestAnimationFrame,r=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,i=!!n,a=i?function(t){var e=n(t);return function(){r(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};return a.supported=i,a}]}function Jn(){var t=10,e=r("$rootScope"),n=null,o=null;this.digestTtl=function(e){return arguments.length&&(t=e),t},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,s,u,c){function f(){this.$id=l(),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.$$isolateBindings=null}function d(t){if(w.$$phase)throw e("inprog","{0} already in progress",w.$$phase);w.$$phase=t}function h(){w.$$phase=null}function $(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function m(){}function v(){for(;C.length;)try{C.shift()()}catch(t){s(t)}o=null}function b(){null===o&&(o=c.defer(function(){w.$apply(v)}))}f.prototype={constructor:f,$new:function(t,e){function n(){r.$$destroyed=!0}var r;return e=e||this,t?(r=new f,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=function(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=l(),this.$$ChildScope=null},this.$$ChildScope.prototype=this),r=new this.$$ChildScope),r.$parent=e,r.$$prevSibling=e.$$childTail,e.$$childHead?(e.$$childTail.$$nextSibling=r,e.$$childTail=r):e.$$childHead=e.$$childTail=r,(t||e!=this)&&r.$on("$destroy",n),r},$watch:function(t,e,r){var i=u(t);if(i.$$watchDelegate)return i.$$watchDelegate(this,e,r,i);var a=this,o=a.$$watchers,s={fn:e,last:m,get:i,exp:t,eq:!!r};return n=null,k(e)||(s.fn=p),o||(o=a.$$watchers=[]),o.unshift(s),function(){q(o,s),n=null}},$watchGroup:function(t,e){function n(){u=!1,l?(l=!1,e(i,i,s)):e(i,r,s)}var r=new Array(t.length),i=new Array(t.length),o=[],s=this,u=!1,l=!0;if(!t.length){var c=!0;return s.$evalAsync(function(){c&&e(i,i,s)}),function(){c=!1}}return 1===t.length?this.$watch(t[0],function(t,n,a){i[0]=t,r[0]=n,e(i,t===n?i:r,a)}):(a(t,function(t,e){var a=s.$watch(t,function(t,a){i[e]=t,r[e]=a,u||(u=!0,s.$evalAsync(n))});o.push(a)}),function(){for(;o.length;)o.shift()()})},$watchCollection:function(t,e){function n(t){a=t;var e,n,r,s,u;if(!g(a)){if(y(a))if(i(a)){o!==h&&(o=h,m=o.length=0,f++),e=a.length,m!==e&&(f++,o.length=m=e);for(var l=0;e>l;l++)u=o[l],s=a[l],r=u!==u&&s!==s,r||u===s||(f++,o[l]=s)}else{o!==p&&(o=p={},m=0,f++),e=0;for(n in a)a.hasOwnProperty(n)&&(e++,s=a[n],u=o[n],n in o?(r=u!==u&&s!==s,r||u===s||(f++,o[n]=s)):(m++,o[n]=s,f++));if(m>e){f++;for(n in o)a.hasOwnProperty(n)||(m--,delete o[n])}}else o!==a&&(o=a,f++);return f}}function r(){if($?($=!1,e(a,a,l)):e(a,s,l),c)if(y(a))if(i(a)){s=new Array(a.length);for(var t=0;t<a.length;t++)s[t]=a[t]}else{s={};for(var n in a)Jr.call(a,n)&&(s[n]=a[n])}else s=a}n.$stateful=!0;var a,o,s,l=this,c=e.length>1,f=0,d=u(t,n),h=[],p={},$=!0,m=0;return this.$watch(d,r)},$digest:function(){var r,i,a,u,l,f,p,$,g,y,b=t,C=this,A=[];d("$digest"),c.$$checkUrlChange(),this===w&&null!==o&&(c.defer.cancel(o),v()),n=null;do{for(f=!1,$=C;x.length;){try{y=x.shift(),y.scope.$eval(y.expression,y.locals)}catch(O){s(O)}n=null}t:do{if(u=$.$$watchers)for(l=u.length;l--;)try{if(r=u[l])if((i=r.get($))===(a=r.last)||(r.eq?I(i,a):"number"==typeof i&&"number"==typeof a&&isNaN(i)&&isNaN(a))){if(r===n){f=!1;
+
break t}}else f=!0,n=r,r.last=r.eq?D(i,null):i,r.fn(i,a===m?i:a,$),5>b&&(g=4-b,A[g]||(A[g]=[]),A[g].push({msg:k(r.exp)?"fn: "+(r.exp.name||r.exp.toString()):r.exp,newVal:i,oldVal:a}))}catch(O){s(O)}if(!(p=$.$$childHead||$!==C&&$.$$nextSibling))for(;$!==C&&!(p=$.$$nextSibling);)$=$.$parent}while($=p);if((f||x.length)&&!b--)throw h(),e("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",t,A)}while(f||x.length);for(h();S.length;)try{S.shift()()}catch(O){s(O)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;if(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==w){for(var e in this.$$listenerCount)$(this,this.$$listenerCount[e],e);t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t.$$childTail==this&&(t.$$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.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(t,e){return u(t)(this,e)},$evalAsync:function(t,e){w.$$phase||x.length||c.defer(function(){x.length&&w.$digest()}),x.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){S.push(t)},$apply:function(t){try{return d("$apply"),this.$eval(t)}catch(e){s(e)}finally{h();try{w.$digest()}catch(e){throw s(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&C.push(e),b()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var r=this;do r.$$listenerCount[t]||(r.$$listenerCount[t]=0),r.$$listenerCount[t]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(e);-1!==r&&(n[r]=null,$(i,1,t))}},$emit:function(t){var e,n,r,i=[],a=this,o=!1,u={name:t,targetScope:a,stopPropagation:function(){o=!0},preventDefault:function(){u.defaultPrevented=!0},defaultPrevented:!1},l=_([u],arguments,1);do{for(e=a.$$listeners[t]||i,u.currentScope=a,n=0,r=e.length;r>n;n++)if(e[n])try{e[n].apply(null,l)}catch(c){s(c)}else e.splice(n,1),n--,r--;if(o)return u.currentScope=null,u;a=a.$parent}while(a);return u.currentScope=null,u},$broadcast:function(t){var e=this,n=e,r=e,i={name:t,targetScope:e,preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1};if(!e.$$listenerCount[t])return i;for(var a,o,u,l=_([i],arguments,1);n=r;){for(i.currentScope=n,a=n.$$listeners[t]||[],o=0,u=a.length;u>o;o++)if(a[o])try{a[o].apply(null,l)}catch(c){s(c)}else a.splice(o,1),o--,u--;if(!(r=n.$$listenerCount[t]&&n.$$childHead||n!==e&&n.$$nextSibling))for(;n!==e&&!(r=n.$$nextSibling);)n=n.$parent}return i.currentScope=null,i}};var w=new f,x=w.$$asyncQueue=[],S=w.$$postDigestQueue=[],C=w.$$applyAsyncQueue=[];return w}]}function Yn(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return v(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return v(t)?(e=t,this):e},this.$get=function(){return function(n,r){var i,a=r?e:t;return i=ir(n).href,""===i||i.match(a)?n:"unsafe:"+i}}}function Zn(t){if("self"===t)return t;if(b(t)){if(t.indexOf("***")>-1)throw va("iwcard","Illegal sequence *** in string matcher.  String: {0}",t);return t=di(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(S(t))return new RegExp("^"+t.source+"$");throw va("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Kn(t){var e=[];return v(t)&&a(t,function(t){e.push(Zn(t))}),e}function Xn(){this.SCE_CONTEXTS=ya;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=Kn(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=Kn(t)),e},this.$get=["$injector",function(r){function i(t,e){return"self"===t?ar(e):!!t.exec(e.href)}function a(n){var r,a,o=ir(n.toString()),s=!1;for(r=0,a=t.length;a>r;r++)if(i(t[r],o)){s=!0;break}if(s)for(r=0,a=e.length;a>r;r++)if(i(e[r],o)){s=!1;break}return s}function o(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function s(t,e){var r=d.hasOwnProperty(t)?d[t]:null;if(!r)throw va("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||e===n||""===e)return e;if("string"!=typeof e)throw va("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new r(e)}function u(t){return t instanceof f?t.$$unwrapTrustedValue():t}function l(t,e){if(null===e||e===n||""===e)return e;var r=d.hasOwnProperty(t)?d[t]:null;if(r&&e instanceof r)return e.$$unwrapTrustedValue();if(t===ya.RESOURCE_URL){if(a(e))return e;throw va("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",e.toString())}if(t===ya.HTML)return c(e);throw va("unsafe","Attempting to use an unsafe value in a safe context.")}var c=function(){throw va("unsafe","Attempting to use an unsafe value in a safe context.")};r.has("$sanitize")&&(c=r.get("$sanitize"));var f=o(),d={};return d[ya.HTML]=o(f),d[ya.CSS]=o(f),d[ya.URL]=o(f),d[ya.JS]=o(f),d[ya.RESOURCE_URL]=o(d[ya.URL]),{trustAs:s,getTrusted:l,valueOf:u}}]}function Qn(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>Xr)throw va("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 r=R(ya);r.isEnabled=function(){return t},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,t||(r.trustAs=r.getTrusted=function(t,e){return e},r.valueOf=$),r.parseAs=function(t,n){var i=e(n);return i.literal&&i.constant?i:e(n,function(e){return r.getTrusted(t,e)})};var i=r.parseAs,o=r.getTrusted,s=r.trustAs;return a(ya,function(t,e){var n=Wr(e);r[$e("parse_as_"+n)]=function(e){return i(t,e)},r[$e("get_trusted_"+n)]=function(e){return o(t,e)},r[$e("trust_as_"+n)]=function(e){return s(t,e)}}),r}]}function tr(){this.$get=["$window","$document",function(t,e){var n,r,i={},a=d((/android (\d+)/.exec(Wr((t.navigator||{}).userAgent))||[])[1]),o=/Boxee/i.test((t.navigator||{}).userAgent),s=e[0]||{},u=/^(Moz|webkit|ms)(?=[A-Z])/,l=s.body&&s.body.style,c=!1,f=!1;if(l){for(var h in l)if(r=u.exec(h)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in l&&"webkit"),c=!!("transition"in l||n+"Transition"in l),f=!!("animation"in l||n+"Animation"in l),!a||c&&f||(c=b(s.body.style.webkitTransition),f=b(s.body.style.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>a||o),hasEvent:function(t){if("input"===t&&11>=Xr)return!1;if(g(i[t])){var e=s.createElement("div");i[t]="on"+t in e}return i[t]},csp:hi(),vendorPrefix:n,transitions:c,animations:f,android:a}}]}function er(){this.$get=["$templateCache","$http","$q",function(t,e,n){function r(i,a){function o(t){if(!a)throw Wi("tpload","Failed to load template: {0}",i);return n.reject(t)}r.totalPendingRequests++;var s=e.defaults&&e.defaults.transformResponse;ci(s)?s=s.filter(function(t){return t!==an}):s===an&&(s=null);var u={cache:t,transformResponse:s};return e.get(i,u).finally(function(){r.totalPendingRequests--}).then(function(t){return t.data},o)}return r.totalPendingRequests=0,r}]}function nr(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var r={};return r.findBindings=function(t,e,n){var r=t.getElementsByClassName("ng-binding"),i=[];return a(r,function(t){var r=si.element(t).data("$binding");r&&a(r,function(r){if(n){var a=new RegExp("(^|\\s)"+di(e)+"(\\s|\\||$)");a.test(r)&&i.push(t)}else-1!=r.indexOf(e)&&i.push(t)})}),i},r.findModels=function(t,e,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var a=n?"=":"*=",o="["+r[i]+"model"+a+'"'+e+'"]',s=t.querySelectorAll(o);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(e){e!==n.url()&&(n.url(e),t.$digest())},r.whenStable=function(t){e.notifyWhenNoOutstandingRequests(t)},r}]}function rr(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(t,e,n,r,i){function a(a,s,u){var l,c=v(u)&&!u,f=(c?r:n).defer(),d=f.promise;return l=e.defer(function(){try{f.resolve(a())}catch(e){f.reject(e),i(e)}finally{delete o[d.$$timeoutId]}c||t.$apply()},s),d.$$timeoutId=l,o[l]=f,d}var o={};return a.cancel=function(t){return t&&t.$$timeoutId in o?(o[t.$$timeoutId].reject("canceled"),delete o[t.$$timeoutId],e.defer.cancel(t.$$timeoutId)):!1},a}]}function ir(t){var e=t;return Xr&&(ba.setAttribute("href",e),e=ba.href),ba.setAttribute("href",e),{href:ba.href,protocol:ba.protocol?ba.protocol.replace(/:$/,""):"",host:ba.host,search:ba.search?ba.search.replace(/^\?/,""):"",hash:ba.hash?ba.hash.replace(/^#/,""):"",hostname:ba.hostname,port:ba.port,pathname:"/"===ba.pathname.charAt(0)?ba.pathname:"/"+ba.pathname}}function ar(t){var e=b(t)?ir(t):t;return e.protocol===wa.protocol&&e.host===wa.host}function or(){this.$get=m(t)}function sr(t){function e(r,i){if(y(r)){var o={};return a(r,function(t,n){o[n]=e(n,t)}),o}return t.factory(r+n,i)}var n="Filter";this.register=e,this.$get=["$injector",function(t){return function(e){return t.get(e+n)}}],e("currency",fr),e("date",xr),e("filter",ur),e("json",kr),e("limitTo",Sr),e("lowercase",Aa),e("number",dr),e("orderBy",Cr),e("uppercase",Oa)}function ur(){return function(t,e,n){if(!ci(t))return t;var r,i;switch(typeof e){case"function":r=e;break;case"boolean":case"number":case"string":i=!0;case"object":r=lr(e,n,i);break;default:return t}return t.filter(r)}}function lr(t,e,n){var r,i=y(t)&&"$"in t;return e===!0?e=I:k(e)||(e=function(t,e){return y(t)||y(e)?!1:(t=Wr(""+t),e=Wr(""+e),-1!==t.indexOf(e))}),r=function(r){return i&&!y(r)?cr(r,t.$,e,!1):cr(r,t,e,n)}}function cr(t,e,n,r,i){var a=typeof t,o=typeof e;if("string"===o&&"!"===e.charAt(0))return!cr(t,e.substring(1),n,r);if(ci(t))return t.some(function(t){return cr(t,e,n,r)});switch(a){case"object":var s;if(r){for(s in t)if("$"!==s.charAt(0)&&cr(t[s],e,n,!0))return!0;return i?!1:cr(t,e,n,!1)}if("object"===o){for(s in e){var u=e[s];if(!k(u)){var l="$"===s,c=l?t:t[s];if(!cr(c,u,n,l,l))return!1}}return!0}return n(t,e);case"function":return!1;default:return n(t,e)}}function fr(t){var e=t.NUMBER_FORMATS;return function(t,n,r){return g(n)&&(n=e.CURRENCY_SYM),g(r)&&(r=e.PATTERNS[1].maxFrac),null==t?t:hr(t,e.PATTERNS[1],e.GROUP_SEP,e.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function dr(t){var e=t.NUMBER_FORMATS;return function(t,n){return null==t?t:hr(t,e.PATTERNS[0],e.GROUP_SEP,e.DECIMAL_SEP,n)}}function hr(t,e,n,r,i){if(!isFinite(t)||y(t))return"";var a=0>t;t=Math.abs(t);var o=t+"",s="",u=[],l=!1;if(-1!==o.indexOf("e")){var c=o.match(/([\d\.]+)e(-?)(\d+)/);c&&"-"==c[2]&&c[3]>i+1?t=0:(s=o,l=!0)}if(l)i>0&&1>t&&(s=t.toFixed(i),t=parseFloat(s));else{var f=(o.split(xa)[1]||"").length;g(i)&&(i=Math.min(Math.max(e.minFrac,f),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+i)).toString()+"e"+-i);var d=(""+t).split(xa),h=d[0];d=d[1]||"";var p,$=0,m=e.lgSize,v=e.gSize;if(h.length>=m+v)for($=h.length-m,p=0;$>p;p++)($-p)%v===0&&0!==p&&(s+=n),s+=h.charAt(p);for(p=$;p<h.length;p++)(h.length-p)%m===0&&0!==p&&(s+=n),s+=h.charAt(p);for(;d.length<i;)d+="0";i&&"0"!==i&&(s+=r+d.substr(0,i))}return 0===t&&(a=!1),u.push(a?e.negPre:e.posPre,s,a?e.negSuf:e.posSuf),u.join("")}function pr(t,e,n){var r="";for(0>t&&(r="-",t=-t),t=""+t;t.length<e;)t="0"+t;return n&&(t=t.substr(t.length-e)),r+t}function $r(t,e,n,r){return n=n||0,function(i){var a=i["get"+t]();return(n>0||a>-n)&&(a+=n),0===a&&-12==n&&(a=12),pr(a,e,r)}}function mr(t,e){return function(n,r){var i=n["get"+t](),a=Yr(e?"SHORT"+t:t);return r[a][i]}}function gr(t){var e=-1*t.getTimezoneOffset(),n=e>=0?"+":"";return n+=pr(Math[e>0?"floor":"ceil"](e/60),2)+pr(Math.abs(e%60),2)}function vr(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function yr(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function br(t){return function(e){var n=vr(e.getFullYear()),r=yr(e),i=+r-+n,a=1+Math.round(i/6048e5);return pr(a,t)}}function wr(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function xr(t){function e(t){var e;if(e=t.match(n)){var r=new Date(0),i=0,a=0,o=e[8]?r.setUTCFullYear:r.setFullYear,s=e[8]?r.setUTCHours:r.setHours;e[9]&&(i=d(e[9]+e[10]),a=d(e[9]+e[11])),o.call(r,d(e[1]),d(e[2])-1,d(e[3]));var u=d(e[4]||0)-i,l=d(e[5]||0)-a,c=d(e[6]||0),f=Math.round(1e3*parseFloat("0."+(e[7]||0)));return s.call(r,u,l,c,f),r}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var o,s,u="",l=[];if(r=r||"mediumDate",r=t.DATETIME_FORMATS[r]||r,b(n)&&(n=Ca.test(n)?d(n):e(n)),w(n)&&(n=new Date(n)),!x(n))return n;for(;r;)s=Sa.exec(r),s?(l=_(l,s,1),r=l.pop()):(l.push(r),r=null);return i&&"UTC"===i&&(n=new Date(n.getTime()),n.setMinutes(n.getMinutes()+n.getTimezoneOffset())),a(l,function(e){o=ka[e],u+=o?o(n,t.DATETIME_FORMATS):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function kr(){return function(t,e){return g(e)&&(e=2),H(t,e)}}function Sr(){return function(t,e){return w(t)&&(t=t.toString()),ci(t)||b(t)?(e=1/0===Math.abs(Number(e))?Number(e):d(e),e?e>0?t.slice(0,e):t.slice(e):b(t)?"":[]):t}}function Cr(t){return function(e,n,r){function a(t,e){for(var r=0;r<n.length;r++){var i=n[r](t,e);if(0!==i)return i}return 0}function o(t,e){return e?function(e,n){return t(n,e)}:t}function s(t){switch(typeof t){case"number":case"boolean":case"string":return!0;default:return!1}}function u(t){return null===t?"null":"function"==typeof t.valueOf&&(t=t.valueOf(),s(t))?t:"function"==typeof t.toString&&(t=t.toString(),s(t))?t:""}function l(t,e){var n=typeof t,r=typeof e;return n===r&&"object"===n&&(t=u(t),e=u(e)),n===r?("string"===n&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e?0:e>t?-1:1):r>n?-1:1}return i(e)?(n=ci(n)?n:[n],0===n.length&&(n=["+"]),n=n.map(function(e){var n=!1,r=e||$;if(b(e)){if(("+"==e.charAt(0)||"-"==e.charAt(0))&&(n="-"==e.charAt(0),e=e.substring(1)),""===e)return o(l,n);if(r=t(e),r.constant){var i=r();return o(function(t,e){return l(t[i],e[i])},n)}}return o(function(t,e){return l(r(t),r(e))},n)}),ni.call(e).sort(o(a,r))):e}}function Ar(t){return k(t)&&(t={link:t}),t.restrict=t.restrict||"AC",m(t)}function Or(t,e){t.$name=e}function Er(t,e,r,i,o){var s=this,u=[],l=s.$$parentForm=t.parent().controller("form")||Na;s.$error={},s.$$success={},s.$pending=n,s.$name=o(e.name||e.ngForm||"")(r),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,l.$addControl(s),s.$rollbackViewValue=function(){a(u,function(t){t.$rollbackViewValue()})},s.$commitViewValue=function(){a(u,function(t){t.$commitViewValue()})},s.$addControl=function(t){oe(t.$name,"input"),u.push(t),t.$name&&(s[t.$name]=t)},s.$$renameControl=function(t,e){var n=t.$name;s[n]===t&&delete s[n],s[e]=t,t.$name=e},s.$removeControl=function(t){t.$name&&s[t.$name]===t&&delete s[t.$name],a(s.$pending,function(e,n){s.$setValidity(n,null,t)}),a(s.$error,function(e,n){s.$setValidity(n,null,t)}),a(s.$$success,function(e,n){s.$setValidity(n,null,t)}),q(u,t)},Hr({ctrl:this,$element:t,set:function(t,e,n){var r=t[e];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else t[e]=[n]},unset:function(t,e,n){var r=t[e];r&&(q(r,n),0===r.length&&delete t[e])},parentForm:l,$animate:i}),s.$setDirty=function(){i.removeClass(t,ho),i.addClass(t,po),s.$dirty=!0,s.$pristine=!1,l.$setDirty()},s.$setPristine=function(){i.setClass(t,ho,po+" "+Ta),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,a(u,function(t){t.$setPristine()})},s.$setUntouched=function(){a(u,function(t){t.$setUntouched()})},s.$setSubmitted=function(){i.addClass(t,Ta),s.$submitted=!0,l.$setSubmitted()}}function jr(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function Nr(t,e,n,r,i,a){Tr(t,e,n,r,i,a),jr(r)}function Tr(t,e,n,r,i,a){var o=Wr(e[0].type);if(!i.android){var s=!1;e.on("compositionstart",function(){s=!0}),e.on("compositionend",function(){s=!1,u()})}var u=function(t){if(l&&(a.defer.cancel(l),l=null),!s){var i=e.val(),u=t&&t.type;"password"===o||n.ngTrim&&"false"===n.ngTrim||(i=fi(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))e.on("input",u);else{var l,c=function(t,e,n){l||(l=a.defer(function(){l=null,e&&e.value===n||u(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||c(t,this,this.value)}),i.hasEvent("paste")&&e.on("paste cut",c)}e.on("change",u),r.$render=function(){e.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)}}function Mr(t,e){if(x(t))return t;if(b(t)){La.lastIndex=0;var n=La.exec(t);if(n){var r=+n[1],i=+n[2],a=0,o=0,s=0,u=0,l=vr(r),c=7*(i-1);return e&&(a=e.getHours(),o=e.getMinutes(),s=e.getSeconds(),u=e.getMilliseconds()),new Date(r,0,l.getDate()+c,a,o,s,u)}}return 0/0}function Pr(t,e){return function(n,r){var i,o;if(x(n))return n;if(b(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),qa.test(n))return new Date(n);if(t.lastIndex=0,i=t.exec(n))return i.shift(),o=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},a(i,function(t,n){n<e.length&&(o[e[n]]=+t)}),new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0)}return 0/0}}function Vr(t,e,r,i){return function(a,o,s,u,l,c,f){function d(t){return t&&!(t.getTime&&t.getTime()!==t.getTime())}function h(t){return v(t)?x(t)?t:r(t):n}qr(a,o,s,u),Tr(a,o,s,u,l,c);var p,$=u&&u.$options&&u.$options.timezone;if(u.$$parserName=t,u.$parsers.push(function(t){if(u.$isEmpty(t))return null;if(e.test(t)){var i=r(t,p);return"UTC"===$&&i.setMinutes(i.getMinutes()-i.getTimezoneOffset()),i}return n}),u.$formatters.push(function(t){if(t&&!x(t))throw vo("datefmt","Expected `{0}` to be a date",t);if(d(t)){if(p=t,p&&"UTC"===$){var e=6e4*p.getTimezoneOffset();p=new Date(p.getTime()+e)}return f("date")(t,i,$)}return p=null,""}),v(s.min)||s.ngMin){var m;u.$validators.min=function(t){return!d(t)||g(m)||r(t)>=m},s.$observe("min",function(t){m=h(t),u.$validate()})}if(v(s.max)||s.ngMax){var y;u.$validators.max=function(t){return!d(t)||g(y)||r(t)<=y},s.$observe("max",function(t){y=h(t),u.$validate()})}}}function qr(t,e,r,i){var a=e[0],o=i.$$hasNativeValidators=y(a.validity);o&&i.$parsers.push(function(t){var r=e.prop(Gr)||{};return r.badInput&&!r.typeMismatch?n:t})}function Dr(t,e,r,i,a,o){if(qr(t,e,r,i),Tr(t,e,r,i,a,o),i.$$parserName="number",i.$parsers.push(function(t){return i.$isEmpty(t)?null:Ia.test(t)?parseFloat(t):n}),i.$formatters.push(function(t){if(!i.$isEmpty(t)){if(!w(t))throw vo("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),r.min||r.ngMin){var s;i.$validators.min=function(t){return i.$isEmpty(t)||g(s)||t>=s},r.$observe("min",function(t){v(t)&&!w(t)&&(t=parseFloat(t,10)),s=w(t)&&!isNaN(t)?t:n,i.$validate()})}if(r.max||r.ngMax){var u;i.$validators.max=function(t){return i.$isEmpty(t)||g(u)||u>=t},r.$observe("max",function(t){v(t)&&!w(t)&&(t=parseFloat(t,10)),u=w(t)&&!isNaN(t)?t:n,i.$validate()})}}function Rr(t,e,n,r,i,a){Tr(t,e,n,r,i,a),jr(r),r.$$parserName="url",r.$validators.url=function(t,e){var n=t||e;return r.$isEmpty(n)||Da.test(n)}}function Ir(t,e,n,r,i,a){Tr(t,e,n,r,i,a),jr(r),r.$$parserName="email",r.$validators.email=function(t,e){var n=t||e;return r.$isEmpty(n)||Ra.test(n)}}function _r(t,e,n,r){g(n.name)&&e.attr("name",l());var i=function(t){e[0].checked&&r.$setViewValue(n.value,t&&t.type)};e.on("click",i),r.$render=function(){var t=n.value;e[0].checked=t==r.$viewValue},n.$observe("value",r.$render)}function Ur(t,e,n,i,a){var o;if(v(i)){if(o=t(i),!o.constant)throw r("ngModel")("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,i);return o(e)}return a}function Lr(t,e,n,r,i,a,o,s){var u=Ur(s,t,"ngTrueValue",n.ngTrueValue,!0),l=Ur(s,t,"ngFalseValue",n.ngFalseValue,!1),c=function(t){r.$setViewValue(e[0].checked,t&&t.type)};e.on("click",c),r.$render=function(){e[0].checked=r.$viewValue},r.$isEmpty=function(t){return t===!1},r.$formatters.push(function(t){return I(t,u)}),r.$parsers.push(function(t){return t?u:l})}function Fr(t,e){return t="ngClass"+t,["$animate",function(n){function r(t,e){var n=[];t:for(var r=0;r<t.length;r++){for(var i=t[r],a=0;a<e.length;a++)if(i==e[a])continue t;n.push(i)}return n}function i(t){if(ci(t))return t;if(b(t))return t.split(" ");if(y(t)){var e=[];return a(t,function(t,n){t&&(e=e.concat(n.split(" ")))}),e}return t}return{restrict:"AC",link:function(o,s,u){function l(t){var e=f(t,1);u.$addClass(e)}function c(t){var e=f(t,-1);u.$removeClass(e)}function f(t,e){var n=s.data("$classCounts")||{},r=[];return a(t,function(t){(e>0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&r.push(t))}),s.data("$classCounts",n),r.join(" ")}function d(t,e){var i=r(e,t),a=r(t,e);i=f(i,1),a=f(a,-1),i&&i.length&&n.addClass(s,i),a&&a.length&&n.removeClass(s,a)}function h(t){if(e===!0||o.$index%2===e){var n=i(t||[]);if(p){if(!I(t,p)){var r=i(p);d(r,n)}}else l(n)}p=R(t)}var p;o.$watch(u[t],h,!0),u.$observe("class",function(){h(o.$eval(u[t]))}),"ngClass"!==t&&o.$watch("$index",function(n,r){var a=1&n;if(a!==(1&r)){var s=i(o.$eval(u[t]));a===e?l(s):c(s)}})}}}]}function Hr(t){function e(t,e,u){e===n?r("$pending",t,u):i("$pending",t,u),N(e)?e?(f(s.$error,t,u),c(s.$$success,t,u)):(c(s.$error,t,u),f(s.$$success,t,u)):(f(s.$error,t,u),f(s.$$success,t,u)),s.$pending?(a(go,!0),s.$valid=s.$invalid=n,o("",null)):(a(go,!1),s.$valid=Br(s.$error),s.$invalid=!s.$valid,o("",s.$valid));var l;l=s.$pending&&s.$pending[t]?n:s.$error[t]?!1:s.$$success[t]?!0:null,o(t,l),d.$setValidity(t,l,s)}function r(t,e,n){s[t]||(s[t]={}),c(s[t],e,n)}function i(t,e,r){s[t]&&f(s[t],e,r),Br(s[t])&&(s[t]=n)}function a(t,e){e&&!l[t]?(h.addClass(u,t),l[t]=!0):!e&&l[t]&&(h.removeClass(u,t),l[t]=!1)}function o(t,e){t=t?"-"+ne(t,"-"):"",a(co+t,e===!0),a(fo+t,e===!1)}var s=t.ctrl,u=t.$element,l={},c=t.set,f=t.unset,d=t.parentForm,h=t.$animate;l[fo]=!(l[co]=u.hasClass(co)),s.$setValidity=e}function Br(t){if(t)for(var e in t)return!1;return!0}var zr=/^\/(.+)\/([a-z]*)$/,Gr="validity",Wr=function(t){return b(t)?t.toLowerCase():t},Jr=Object.prototype.hasOwnProperty,Yr=function(t){return b(t)?t.toUpperCase():t},Zr=function(t){return b(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},Kr=function(t){return b(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&(Wr=Zr,Yr=Kr);var Xr,Qr,ti,ei,ni=[].slice,ri=[].splice,ii=[].push,ai=Object.prototype.toString,oi=r("ng"),si=t.angular||(t.angular={}),ui=0;Xr=e.documentMode,p.$inject=[],$.$inject=[];var li,ci=Array.isArray,fi=function(t){return b(t)?t.trim():t},di=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},hi=function(){if(v(hi.isActive_))return hi.isActive_;var t=!(!e.querySelector("[ng-csp]")&&!e.querySelector("[data-ng-csp]"));if(!t)try{new Function("")}catch(n){t=!0}return hi.isActive_=t},pi=["ng-","data-ng-","ng:","x-ng-"],$i=/[A-Z]/g,mi=!1,gi=1,vi=3,yi=8,bi=9,wi=11,xi={full:"1.3.13",major:1,minor:3,dot:13,codeName:"meticulous-riffleshuffle"};be.expando="ng339";var ki=be.cache={},Si=1,Ci=function(t,e,n){t.addEventListener(e,n,!1)},Ai=function(t,e,n){t.removeEventListener(e,n,!1)};be._data=function(t){return this.cache[t[this.expando]]||{}};var Oi=/([\:\-\_]+(.))/g,Ei=/^moz([A-Z])/,ji={mouseleave:"mouseout",mouseenter:"mouseover"},Ni=r("jqLite"),Ti=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Mi=/<|&#?\w+;/,Pi=/<([\w:]+)/,Vi=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,qi={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,"",""]};qi.optgroup=qi.option,qi.tbody=qi.tfoot=qi.colgroup=qi.caption=qi.thead,qi.th=qi.td;var Di=be.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===e.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),be(t).on("load",r))},toString:function(){var t=[];return a(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return t>=0?Qr(this[t]):Qr(this[this.length+t])},length:0,push:ii,sort:[].sort,splice:[].splice},Ri={};a("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){Ri[Wr(t)]=t});var Ii={};a("input,select,option,textarea,button,form,details".split(","),function(t){Ii[t]=!0});var _i={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};a({data:Ae,removeData:Se},function(t,e){be[e]=t}),a({data:Ae,inheritedData:Me,scope:function(t){return Qr.data(t,"$scope")||Me(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return Qr.data(t,"$isolateScope")||Qr.data(t,"$isolateScopeNoTemplate")},controller:Te,injector:function(t){return Me(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:Oe,css:function(t,e,n){return e=$e(e),v(n)?(t.style[e]=n,void 0):t.style[e]},attr:function(t,e,r){var i=Wr(e);if(Ri[i]){if(!v(r))return t[e]||(t.attributes.getNamedItem(e)||p).specified?i:n;r?(t[e]=!0,t.setAttribute(e,i)):(t[e]=!1,t.removeAttribute(i))}else if(v(r))t.setAttribute(e,r);else if(t.getAttribute){var a=t.getAttribute(e,2);return null===a?n:a}},prop:function(t,e,n){return v(n)?(t[e]=n,void 0):t[e]},text:function(){function t(t,e){if(g(e)){var n=t.nodeType;return n===gi||n===vi?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if(g(e)){if(t.multiple&&"select"===V(t)){var n=[];return a(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return g(e)?t.innerHTML:(xe(t,!0),t.innerHTML=e,void 0)},empty:Pe},function(t,e){be.prototype[e]=function(e,r){var i,a,o=this.length;if(t!==Pe&&(2==t.length&&t!==Oe&&t!==Te?e:r)===n){if(y(e)){for(i=0;o>i;i++)if(t===Ae)t(this[i],e);else for(a in e)t(this[i],a,e[a]);return this}for(var s=t.$dv,u=s===n?Math.min(o,1):o,l=0;u>l;l++){var c=t(this[l],e,r);s=s?s+c:c}return s}for(i=0;o>i;i++)t(this[i],e,r);return this}}),a({removeData:Se,on:function zo(t,e,n,r){if(v(r))throw Ni("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(ge(t)){var i=Ce(t,!0),a=i.events,o=i.handle;o||(o=i.handle=Ie(t,a));for(var s=e.indexOf(" ")>=0?e.split(" "):[e],u=s.length;u--;){e=s[u];var l=a[e];l||(a[e]=[],"mouseenter"===e||"mouseleave"===e?zo(t,ji[e],function(t){var n=this,r=t.relatedTarget;(!r||r!==n&&!n.contains(r))&&o(t,e)}):"$destroy"!==e&&Ci(t,e,o),l=a[e]),l.push(n)}}},off:ke,one:function(t,e,n){t=Qr(t),t.on(e,function r(){t.off(e,n),t.off(e,r)}),t.on(e,n)},replaceWith:function(t,e){var n,r=t.parentNode;xe(t),a(new be(e),function(e){n?r.insertBefore(e,n.nextSibling):r.replaceChild(e,t),n=e})},children:function(t){var e=[];return a(t.childNodes,function(t){t.nodeType===gi&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===gi||n===wi){e=new be(e);for(var r=0,i=e.length;i>r;r++){var a=e[r];t.appendChild(a)}}},prepend:function(t,e){if(t.nodeType===gi){var n=t.firstChild;a(new be(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=Qr(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:Ve,detach:function(t){Ve(t,!0)},after:function(t,e){var n=t,r=t.parentNode;e=new be(e);for(var i=0,a=e.length;a>i;i++){var o=e[i];r.insertBefore(o,n.nextSibling),n=o}},addClass:je,removeClass:Ee,toggleClass:function(t,e,n){e&&a(e.split(" "),function(e){var r=n;g(r)&&(r=!Oe(t,e)),(r?je:Ee)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==wi?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:we,triggerHandler:function(t,e,n){var r,i,o,s=e.type||e,u=Ce(t),l=u&&u.events,c=l&&l[s];c&&(r={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:s,target:t},e.type&&(r=f(r,e)),i=R(c),o=n?[r].concat(n):[r],a(i,function(e){r.isImmediatePropagationStopped()||e.apply(t,o)}))}},function(t,e){be.prototype[e]=function(e,n,r){for(var i,a=0,o=this.length;o>a;a++)g(i)?(i=t(this[a],e,n,r),v(i)&&(i=Qr(i))):Ne(i,t(this[a],e,n,r));return v(i)?i:this},be.prototype.bind=be.prototype.on,be.prototype.unbind=be.prototype.off}),Le.prototype={put:function(t,e){this[Ue(t,this.nextUid)]=e},get:function(t){return this[Ue(t,this.nextUid)]},remove:function(t){var e=this[t=Ue(t,this.nextUid)];return delete this[t],e}};var Ui=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Li=/,/,Fi=/^\s*(_?)(\S+?)\1\s*$/,Hi=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Bi=r("$injector");Be.$$annotate=He;var zi=r("$animate"),Gi=["$provide",function(t){this.$$selectors={},this.register=function(e,n){var r=e+"-animation";if(e&&"."!=e.charAt(0))throw zi("notcsel","Expecting class selector starting with '.' got '{0}'.",e);this.$$selectors[e.substr(1)]=r,t.factory(r,n)},this.classNameFilter=function(t){return 1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null),this.$$classNameFilter},this.$get=["$$q","$$asyncCallback","$rootScope",function(t,e,n){function r(e){var r,i=t.defer();return i.promise.$$cancelFn=function(){r&&r()},n.$$postDigest(function(){r=e(function(){i.resolve()})}),i.promise}function i(t,e){var n=[],r=[],i=le();return a((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0}),a(e,function(t,e){var a=i[e];t===!1&&a?r.push(e):t!==!0||a||n.push(e)}),n.length+r.length>0&&[n.length?n:null,r.length?r:null]}function o(t,e,n){for(var r=0,i=e.length;i>r;++r){var a=e[r];t[a]=n}}function s(){return l||(l=t.defer(),e(function(){l.resolve(),l=null})),l.promise}function u(t,e){if(si.isObject(e)){var n=f(e.from||{},e.to||{});t.css(n)}}var l;return{animate:function(t,e,n){return u(t,{from:e,to:n}),s()},enter:function(t,e,n,r){return u(t,r),n?n.after(t):e.prepend(t),s()},leave:function(t){return t.remove(),s()},move:function(t,e,n,r){return this.enter(t,e,n,r)},addClass:function(t,e,n){return this.setClass(t,e,[],n)},$$addClassImmediately:function(t,e,n){return t=Qr(t),e=b(e)?e:ci(e)?e.join(" "):"",a(t,function(t){je(t,e)}),u(t,n),s()},removeClass:function(t,e,n){return this.setClass(t,[],e,n)},$$removeClassImmediately:function(t,e,n){return t=Qr(t),e=b(e)?e:ci(e)?e.join(" "):"",a(t,function(t){Ee(t,e)}),u(t,n),s()},setClass:function(t,e,n,a){var s=this,u="$$animateClasses",l=!1;t=Qr(t);var c=t.data(u);c?a&&c.options&&(c.options=si.extend(c.options||{},a)):(c={classes:{},options:a},l=!0);var f=c.classes;return e=ci(e)?e:e.split(" "),n=ci(n)?n:n.split(" "),o(f,e,!0),o(f,n,!1),l&&(c.promise=r(function(e){var n=t.data(u);if(t.removeData(u),n){var r=i(t,n.classes);r&&s.$$setClassImmediately(t,r[0],r[1],n.options)}e()}),t.data(u,c)),c.promise},$$setClassImmediately:function(t,e,n,r){return e&&this.$$addClassImmediately(t,e),n&&this.$$removeClassImmediately(t,n),u(t,r),s()},enabled:p,cancel:p}}]}],Wi=r("$compile");Ke.$inject=["$provide","$$sanitizeUriProvider"];var Ji=/^((?:x|data)[\:\-_])/i,Yi=r("$controller"),Zi="application/json",Ki={"Content-Type":Zi+";charset=utf-8"},Xi=/^\[|^\{(?!\{)/,Qi={"[":/]$/,"{":/}$/},ta=/^\)\]\}',?\n/,ea=r("$interpolate"),na=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,ra={http:80,https:443,ftp:21},ia=r("$location"),aa={$$html5:!1,$$replace:!1,absUrl:jn("$$absUrl"),url:function(t){if(g(t))return this.$$url;
+
var e=na.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:jn("$$protocol"),host:jn("$$host"),port:jn("$$port"),path:Nn("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(b(t)||w(t))t=t.toString(),this.$$search=W(t);else{if(!y(t))throw ia("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=D(t,{}),a(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:g(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:Nn("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};a([En,On,An],function(t){t.prototype=Object.create(aa),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==An||!this.$$html5)throw ia("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=g(e)?null:e,this}});var oa=r("$parse"),sa=Function.prototype.call,ua=Function.prototype.apply,la=Function.prototype.bind,ca=le();a({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(t,e){t.constant=t.literal=t.sharedGetter=!0,ca[e]=t}),ca["this"]=function(t){return t},ca["this"].sharedGetter=!0;var fa=f(le(),{"+":function(t,e,r,i){return r=r(t,e),i=i(t,e),v(r)?v(i)?r+i:r:v(i)?i:n},"-":function(t,e,n,r){return n=n(t,e),r=r(t,e),(v(n)?n:0)-(v(r)?r:0)},"*":function(t,e,n,r){return n(t,e)*r(t,e)},"/":function(t,e,n,r){return n(t,e)/r(t,e)},"%":function(t,e,n,r){return n(t,e)%r(t,e)},"===":function(t,e,n,r){return n(t,e)===r(t,e)},"!==":function(t,e,n,r){return n(t,e)!==r(t,e)},"==":function(t,e,n,r){return n(t,e)==r(t,e)},"!=":function(t,e,n,r){return n(t,e)!=r(t,e)},"<":function(t,e,n,r){return n(t,e)<r(t,e)},">":function(t,e,n,r){return n(t,e)>r(t,e)},"<=":function(t,e,n,r){return n(t,e)<=r(t,e)},">=":function(t,e,n,r){return n(t,e)>=r(t,e)},"&&":function(t,e,n,r){return n(t,e)&&r(t,e)},"||":function(t,e,n,r){return n(t,e)||r(t,e)},"!":function(t,e,n){return!n(t,e)},"=":!0,"|":!0}),da={n:"\n",f:"\f",r:"\r",t:" ",v:"�","'":"'",'"':'"'},ha=function(t){this.options=t};ha.prototype={constructor:ha,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index<this.text.length;){var e=this.text.charAt(this.index);if('"'===e||"'"===e)this.readString(e);else if(this.isNumber(e)||"."===e&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(e))this.readIdent();else if(this.is(e,"(){}[].,;:?"))this.tokens.push({index:this.index,text:e}),this.index++;else if(this.isWhitespace(e))this.index++;else{var n=e+this.peek(),r=n+this.peek(2),i=fa[e],a=fa[n],o=fa[r];if(i||a||o){var s=o?r:a?n:e;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(t,e){return-1!==e.indexOf(t)},peek:function(t){var e=t||1;return this.index+e<this.text.length?this.text.charAt(this.index+e):!1},isNumber:function(t){return t>="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||" "===t||"\n"===t||"�"===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var r=v(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw oa("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,r,this.text)},readNumber:function(){for(var t="",e=this.index;this.index<this.text.length;){var n=Wr(this.text.charAt(this.index));if("."==n||this.isNumber(n))t+=n;else{var r=this.peek();if("e"==n&&this.isExpOperator(r))t+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"==t.charAt(t.length-1))t+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!=t.charAt(t.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:e,text:t,constant:!0,value:Number(t)})},readIdent:function(){for(var t=this.index;this.index<this.text.length;){var e=this.text.charAt(this.index);if(!this.isIdent(e)&&!this.isNumber(e))break;this.index++}this.tokens.push({index:t,text:this.text.slice(t,this.index),identifier:!0})},readString:function(t){var e=this.index;this.index++;for(var n="",r=t,i=!1;this.index<this.text.length;){var a=this.text.charAt(this.index);if(r+=a,i){if("u"===a){var o=this.text.substring(this.index+1,this.index+5);o.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+o+"]"),this.index+=4,n+=String.fromCharCode(parseInt(o,16))}else{var s=da[a];n+=s||a}i=!1}else if("\\"===a)i=!0;else{if(a===t)return this.index++,this.tokens.push({index:e,text:r,constant:!0,value:n}),void 0;n+=a}this.index++}this.throwError("Unterminated quote",e)}};var pa=function(t,e,n){this.lexer=t,this.$filter=e,this.options=n};pa.ZERO=f(function(){return 0},{sharedGetter:!0,constant:!0}),pa.prototype={constructor:pa,parse:function(t){this.text=t,this.tokens=this.lexer.lex(t);var e=this.statements();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),e.literal=!!e.literal,e.constant=!!e.constant,e},primary:function(){var t;this.expect("(")?(t=this.filterChain(),this.consume(")")):this.expect("[")?t=this.arrayDeclaration():this.expect("{")?t=this.object():this.peek().identifier&&this.peek().text in ca?t=ca[this.consume().text]:this.peek().identifier?t=this.identifier():this.peek().constant?t=this.constant():this.throwError("not a primary expression",this.peek());for(var e,n;e=this.expect("(","[",".");)"("===e.text?(t=this.functionCall(t,n),n=null):"["===e.text?(n=t,t=this.objectIndex(t)):"."===e.text?(n=t,t=this.fieldAccess(t)):this.throwError("IMPOSSIBLE");return t},throwError:function(t,e){throw oa("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",e.text,t,e.index+1,this.text,this.text.substring(e.index))},peekToken:function(){if(0===this.tokens.length)throw oa("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(t,e,n,r){return this.peekAhead(0,t,e,n,r)},peekAhead:function(t,e,n,r,i){if(this.tokens.length>t){var a=this.tokens[t],o=a.text;if(o===e||o===n||o===r||o===i||!e&&!n&&!r&&!i)return a}return!1},expect:function(t,e,n,r){var i=this.peek(t,e,n,r);return i?(this.tokens.shift(),i):!1},consume:function(t){if(0===this.tokens.length)throw oa("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},unaryFn:function(t,e){var n=fa[t];return f(function(t,r){return n(t,r,e)},{constant:e.constant,inputs:[e]})},binaryFn:function(t,e,n,r){var i=fa[e];return f(function(e,r){return i(e,r,t,n)},{constant:t.constant&&n.constant,inputs:!r&&[t,n]})},identifier:function(){for(var t=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)t+=this.consume().text+this.consume().text;return Ln(t,this.options,this.text)},constant:function(){var t=this.consume().value;return f(function(){return t},{constant:!0,literal:!0})},statements:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.filterChain()),!this.expect(";"))return 1===t.length?t[0]:function(e,n){for(var r,i=0,a=t.length;a>i;i++)r=t[i](e,n);return r}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},filter:function(t){var e,r,i=this.$filter(this.consume().text);if(this.peek(":"))for(e=[],r=[];this.expect(":");)e.push(this.expression());var a=[t].concat(e||[]);return f(function(a,o){var s=t(a,o);if(r){r[0]=s;for(var u=e.length;u--;)r[u+1]=e[u](a,o);return i.apply(n,r)}return i(s)},{constant:!i.$stateful&&a.every(Dn),inputs:!i.$stateful&&a})},expression:function(){return this.assignment()},assignment:function(){var t,e,n=this.ternary();return(e=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,e.index)+"] can not be assigned to",e),t=this.ternary(),f(function(e,r){return n.assign(e,t(e,r),r)},{inputs:[n,t]})):n},ternary:function(){var t,e,n=this.logicalOR();if((e=this.expect("?"))&&(t=this.assignment(),this.consume(":"))){var r=this.assignment();return f(function(e,i){return n(e,i)?t(e,i):r(e,i)},{constant:n.constant&&t.constant&&r.constant})}return n},logicalOR:function(){for(var t,e=this.logicalAND();t=this.expect("||");)e=this.binaryFn(e,t.text,this.logicalAND(),!0);return e},logicalAND:function(){for(var t,e=this.equality();t=this.expect("&&");)e=this.binaryFn(e,t.text,this.equality(),!0);return e},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e=this.binaryFn(e,t.text,this.relational());return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e=this.binaryFn(e,t.text,this.additive());return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e=this.binaryFn(e,t.text,this.multiplicative());return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e=this.binaryFn(e,t.text,this.unary());return e},unary:function(){var t;return this.expect("+")?this.primary():(t=this.expect("-"))?this.binaryFn(pa.ZERO,t.text,this.unary()):(t=this.expect("!"))?this.unaryFn(t.text,this.unary()):this.primary()},fieldAccess:function(t){var e=this.identifier();return f(function(r,i,a){var o=a||t(r,i);return null==o?n:e(o)},{assign:function(n,r,i){var a=t(n,i);return a||t.assign(n,a={},i),e.assign(a,r)}})},objectIndex:function(t){var e=this.text,r=this.expression();return this.consume("]"),f(function(i,a){var o,s=t(i,a),u=r(i,a);return Pn(u,e),s?o=Vn(s[u],e):n},{assign:function(n,i,a){var o=Pn(r(n,a),e),s=Vn(t(n,a),e);return s||t.assign(n,s={},a),s[o]=i}})},functionCall:function(t,e){var r=[];if(")"!==this.peekToken().text)do r.push(this.expression());while(this.expect(","));this.consume(")");var i=this.text,a=r.length?[]:null;return function(o,s){var u=e?e(o,s):v(e)?n:o,l=t(o,s,u)||p;if(a)for(var c=r.length;c--;)a[c]=Vn(r[c](o,s),i);Vn(u,i),qn(l,i);var f=l.apply?l.apply(u,a):l(a[0],a[1],a[2],a[3],a[4]);return a&&(a.length=0),Vn(f,i)}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),f(function(e,n){for(var r=[],i=0,a=t.length;a>i;i++)r.push(t[i](e,n));return r},{literal:!0,constant:t.every(Dn),inputs:t})},object:function(){var t=[],e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var n=this.consume();n.constant?t.push(n.value):n.identifier?t.push(n.text):this.throwError("invalid key",n),this.consume(":"),e.push(this.expression())}while(this.expect(","));return this.consume("}"),f(function(n,r){for(var i={},a=0,o=e.length;o>a;a++)i[t[a]]=e[a](n,r);return i},{literal:!0,constant:e.every(Dn),inputs:e})}};var $a=le(),ma=le(),ga=Object.prototype.valueOf,va=r("$sce"),ya={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Wi=r("$compile"),ba=e.createElement("a"),wa=ir(t.location.href);sr.$inject=["$provide"],fr.$inject=["$locale"],dr.$inject=["$locale"];var xa=".",ka={yyyy:$r("FullYear",4),yy:$r("FullYear",2,0,!0),y:$r("FullYear",1),MMMM:mr("Month"),MMM:mr("Month",!0),MM:$r("Month",2,1),M:$r("Month",1,1),dd:$r("Date",2),d:$r("Date",1),HH:$r("Hours",2),H:$r("Hours",1),hh:$r("Hours",2,-12),h:$r("Hours",1,-12),mm:$r("Minutes",2),m:$r("Minutes",1),ss:$r("Seconds",2),s:$r("Seconds",1),sss:$r("Milliseconds",3),EEEE:mr("Day"),EEE:mr("Day",!0),a:wr,Z:gr,ww:br(2),w:br(1)},Sa=/((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|w+))(.*)/,Ca=/^\-?\d+$/;xr.$inject=["$locale"];var Aa=m(Wr),Oa=m(Yr);Cr.$inject=["$parse"];var Ea=m({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref||e.name?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===ai.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),ja={};a(Ri,function(t,e){if("multiple"!=t){var n=Xe("ng-"+e);ja[n]=function(){return{restrict:"A",priority:100,link:function(t,r,i){t.$watch(i[n],function(t){i.$set(e,!!t)})}}}}}),a(_i,function(t,e){ja[e]=function(){return{priority:100,link:function(t,n,r){if("ngPattern"===e&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(zr);if(i)return r.$set("ngPattern",new RegExp(i[1],i[2])),void 0}t.$watch(r[e],function(t){r.$set(e,t)})}}}}),a(["src","srcset","href"],function(t){var e=Xe("ng-"+t);ja[e]=function(){return{priority:99,link:function(n,r,i){var a=t,o=t;"href"===t&&"[object SVGAnimatedString]"===ai.call(r.prop("href"))&&(o="xlinkHref",i.$attr[o]="xlink:href",a=null),i.$observe(e,function(e){return e?(i.$set(o,e),Xr&&a&&r.prop(a,i[o]),void 0):("href"===t&&i.$set(o,null),void 0)})}}}});var Na={$addControl:p,$$renameControl:Or,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},Ta="ng-submitted";Er.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Ma=function(t){return["$timeout",function(e){var r={name:"form",restrict:t?"EAC":"E",controller:Er,compile:function(t){return t.addClass(ho).addClass(co),{pre:function(t,r,i,a){if(!("action"in i)){var o=function(e){t.$apply(function(){a.$commitViewValue(),a.$setSubmitted()}),e.preventDefault()};Ci(r[0],"submit",o),r.on("$destroy",function(){e(function(){Ai(r[0],"submit",o)},0,!1)})}var s=a.$$parentForm,u=a.$name;u&&(Rn(t,null,u,a,u),i.$observe(i.name?"name":"ngForm",function(e){u!==e&&(Rn(t,null,u,n,u),u=e,Rn(t,null,u,a,u),s.$$renameControl(a,u))})),r.on("$destroy",function(){s.$removeControl(a),u&&Rn(t,null,u,n,u),f(a,Na)})}}}};return r}]},Pa=Ma(),Va=Ma(!0),qa=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Da=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Ra=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Ia=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,_a=/^(\d{4})-(\d{2})-(\d{2})$/,Ua=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,La=/^(\d{4})-W(\d\d)$/,Fa=/^(\d{4})-(\d\d)$/,Ha=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Ba={text:Nr,date:Vr("date",_a,Pr(_a,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":Vr("datetimelocal",Ua,Pr(Ua,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:Vr("time",Ha,Pr(Ha,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:Vr("week",La,Mr,"yyyy-Www"),month:Vr("month",Fa,Pr(Fa,["yyyy","MM"]),"yyyy-MM"),number:Dr,url:Rr,email:Ir,radio:_r,checkbox:Lr,hidden:p,button:p,submit:p,reset:p,file:p},za=["$browser","$sniffer","$filter","$parse",function(t,e,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,a,o,s){s[0]&&(Ba[Wr(o.type)]||Ba.text)(i,a,o,s[0],e,t,n,r)}}}}],Ga=/^(true|false|\d+)$/,Wa=function(){return{restrict:"A",priority:100,compile:function(t,e){return Ga.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},Ja=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,r,i){t.$$addBindingInfo(r,i.ngBind),r=r[0],e.$watch(i.ngBind,function(t){r.textContent=t===n?"":t})}}}}],Ya=["$interpolate","$compile",function(t,e){return{compile:function(r){return e.$$addBindingClass(r),function(r,i,a){var o=t(i.attr(a.$attr.ngBindTemplate));e.$$addBindingInfo(i,o.expressions),i=i[0],a.$observe("ngBindTemplate",function(t){i.textContent=t===n?"":t})}}}}],Za=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(r,i){var a=e(i.ngBindHtml),o=e(i.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(r),function(e,r,i){n.$$addBindingInfo(r,i.ngBindHtml),e.$watch(o,function(){r.html(t.getTrustedHtml(a(e))||"")})}}}}],Ka=m({restrict:"A",require:"ngModel",link:function(t,e,n,r){r.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),Xa=Fr("",!0),Qa=Fr("Odd",0),to=Fr("Even",1),eo=Ar({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),no=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],ro={},io={blur:!0,focus:!0};a("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=Xe("ng-"+t);ro[e]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,a){var o=n(a[e],null,!0);return function(e,n){n.on(t,function(n){var i=function(){o(e,{$event:n})};io[t]&&r.$$phase?e.$evalAsync(i):e.$apply(i)})}}}}]});var ao=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,a,o){var s,u,l;n.$watch(i.ngIf,function(n){n?u||o(function(n,a){u=a,n[n.length++]=e.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},t.enter(n,r.parent(),r)}):(l&&(l.remove(),l=null),u&&(u.$destroy(),u=null),s&&(l=ue(s.clone),t.leave(l).then(function(){l=null}),s=null))})}}}],oo=["$templateRequest","$anchorScroll","$animate","$sce",function(t,e,n,r){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:si.noop,compile:function(i,a){var o=a.ngInclude||a.src,s=a.onload||"",u=a.autoscroll;return function(i,a,l,c,f){var d,h,p,$=0,m=function(){h&&(h.remove(),h=null),d&&(d.$destroy(),d=null),p&&(n.leave(p).then(function(){h=null}),h=p,p=null)};i.$watch(r.parseAsResourceUrl(o),function(r){var o=function(){!v(u)||u&&!i.$eval(u)||e()},l=++$;r?(t(r,!0).then(function(t){if(l===$){var e=i.$new();c.template=t;var u=f(e,function(t){m(),n.enter(t,null,a).then(o)});d=e,p=u,d.$emit("$includeContentLoaded",r),i.$eval(s)}},function(){l===$&&(m(),i.$emit("$includeContentError",r))}),i.$emit("$includeContentRequested",r)):(m(),c.template=null)})}}}}],so=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,a){return/SVG/.test(r[0].toString())?(r.empty(),t(ve(a.template,e).childNodes)(n,function(t){r.append(t)},{futureParentElement:r}),void 0):(r.html(a.template),t(r.contents())(n),void 0)}}}],uo=Ar({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),lo=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,r,i){var o=e.attr(r.$attr.ngList)||", ",s="false"!==r.ngTrim,u=s?fi(o):o,l=function(t){if(!g(t)){var e=[];return t&&a(t.split(u),function(t){t&&e.push(s?fi(t):t)}),e}};i.$parsers.push(l),i.$formatters.push(function(t){return ci(t)?t.join(o):n}),i.$isEmpty=function(t){return!t||!t.length}}}},co="ng-valid",fo="ng-invalid",ho="ng-pristine",po="ng-dirty",$o="ng-untouched",mo="ng-touched",go="ng-pending",vo=new r("ngModel"),yo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,r,i,o,s,u,l,c,f){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,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=n,this.$name=f(r.name||"",!1)(t);var d=o(r.ngModel),h=d.assign,$=d,m=h,y=null,b=this;this.$$setOptions=function(t){if(b.$options=t,t&&t.getterSetter){var e=o(r.ngModel+"()"),n=o(r.ngModel+"($$$p)");$=function(t){var n=d(t);return k(n)&&(n=e(t)),n},m=function(t){k(d(t))?n(t,{$$$p:b.$modelValue}):h(t,b.$modelValue)}}else if(!d.assign)throw vo("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,z(i))},this.$render=p,this.$isEmpty=function(t){return g(t)||""===t||null===t||t!==t};var x=i.inheritedData("$formController")||Na,S=0;Hr({ctrl:this,$element:i,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},parentForm:x,$animate:s}),this.$setPristine=function(){b.$dirty=!1,b.$pristine=!0,s.removeClass(i,po),s.addClass(i,ho)},this.$setDirty=function(){b.$dirty=!0,b.$pristine=!1,s.removeClass(i,ho),s.addClass(i,po),x.$setDirty()},this.$setUntouched=function(){b.$touched=!1,b.$untouched=!0,s.setClass(i,$o,mo)},this.$setTouched=function(){b.$touched=!0,b.$untouched=!1,s.setClass(i,mo,$o)},this.$rollbackViewValue=function(){u.cancel(y),b.$viewValue=b.$$lastCommittedViewValue,b.$render()},this.$validate=function(){if(!w(b.$modelValue)||!isNaN(b.$modelValue)){var t=b.$$lastCommittedViewValue,e=b.$$rawModelValue,r=b.$$parserName||"parse",i=b.$error[r]?!1:n,a=b.$valid,o=b.$modelValue,s=b.$options&&b.$options.allowInvalid;b.$$runValidators(i,e,t,function(t){s||a===t||(b.$modelValue=t?e:n,b.$modelValue!==o&&b.$$writeModelToScope())})}},this.$$runValidators=function(t,e,r,i){function o(t){var e=b.$$parserName||"parse";if(t===n)l(e,null);else if(l(e,t),!t)return a(b.$validators,function(t,e){l(e,null)}),a(b.$asyncValidators,function(t,e){l(e,null)}),!1;return!0}function s(){var t=!0;return a(b.$validators,function(n,i){var a=n(e,r);t=t&&a,l(i,a)}),t?!0:(a(b.$asyncValidators,function(t,e){l(e,null)}),!1)}function u(){var t=[],i=!0;a(b.$asyncValidators,function(a,o){var s=a(e,r);if(!T(s))throw vo("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",s);l(o,n),t.push(s.then(function(){l(o,!0)},function(){i=!1,l(o,!1)}))}),t.length?c.all(t).then(function(){f(i)},p):f(!0)}function l(t,e){d===S&&b.$setValidity(t,e)}function f(t){d===S&&i(t)}S++;var d=S;return o(t)?s()?(u(),void 0):(f(!1),void 0):(f(!1),void 0)},this.$commitViewValue=function(){var t=b.$viewValue;u.cancel(y),(b.$$lastCommittedViewValue!==t||""===t&&b.$$hasNativeValidators)&&(b.$$lastCommittedViewValue=t,b.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){b.$modelValue!==s&&b.$$writeModelToScope()}var r=b.$$lastCommittedViewValue,i=r,a=g(i)?n:!0;if(a)for(var o=0;o<b.$parsers.length;o++)if(i=b.$parsers[o](i),g(i)){a=!1;break}w(b.$modelValue)&&isNaN(b.$modelValue)&&(b.$modelValue=$(t));var s=b.$modelValue,u=b.$options&&b.$options.allowInvalid;b.$$rawModelValue=i,u&&(b.$modelValue=i,e()),b.$$runValidators(a,i,b.$$lastCommittedViewValue,function(t){u||(b.$modelValue=t?i:n,e())})},this.$$writeModelToScope=function(){m(t,b.$modelValue),a(b.$viewChangeListeners,function(t){try{t()}catch(n){e(n)}})},this.$setViewValue=function(t,e){b.$viewValue=t,(!b.$options||b.$options.updateOnDefault)&&b.$$debounceViewValueCommit(e)},this.$$debounceViewValueCommit=function(e){var n,r=0,i=b.$options;i&&v(i.debounce)&&(n=i.debounce,w(n)?r=n:w(n[e])?r=n[e]:w(n["default"])&&(r=n["default"])),u.cancel(y),r?y=u(function(){b.$commitViewValue()},r):l.$$phase?b.$commitViewValue():t.$apply(function(){b.$commitViewValue()})},t.$watch(function(){var e=$(t);if(e!==b.$modelValue){b.$modelValue=b.$$rawModelValue=e;for(var r=b.$formatters,i=r.length,a=e;i--;)a=r[i](a);b.$viewValue!==a&&(b.$viewValue=b.$$lastCommittedViewValue=a,b.$render(),b.$$runValidators(n,e,a,p))}return e})}],bo=["$rootScope",function(t){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:yo,priority:1,compile:function(e){return e.addClass(ho).addClass($o).addClass(co),{pre:function(t,e,n,r){var i=r[0],a=r[1]||Na;i.$$setOptions(r[2]&&r[2].$options),a.$addControl(i),n.$observe("name",function(t){i.$name!==t&&a.$$renameControl(i,t)}),t.$on("$destroy",function(){a.$removeControl(i)})},post:function(e,n,r,i){var a=i[0];a.$options&&a.$options.updateOn&&n.on(a.$options.updateOn,function(t){a.$$debounceViewValueCommit(t&&t.type)}),n.on("blur",function(){a.$touched||(t.$$phase?e.$evalAsync(a.$setTouched):e.$apply(a.$setTouched))})}}}}}],wo=/(\s+|^)default(\s+|$)/,xo=function(){return{restrict:"A",controller:["$scope","$attrs",function(t,e){var r=this;this.$options=t.$eval(e.ngModelOptions),this.$options.updateOn!==n?(this.$options.updateOnDefault=!1,this.$options.updateOn=fi(this.$options.updateOn.replace(wo,function(){return r.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},ko=Ar({terminal:!0,priority:1e3}),So=["$locale","$interpolate",function(t,e){var n=/{}/g,r=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(i,o,s){function u(t){o.text(t||"")}var l,c=s.count,f=s.$attr.when&&o.attr(s.$attr.when),d=s.offset||0,h=i.$eval(f)||{},p={},$=e.startSymbol(),m=e.endSymbol(),g=$+c+"-"+d+m,v=si.noop;a(s,function(t,e){var n=r.exec(e);if(n){var i=(n[1]?"-":"")+Wr(n[2]);h[i]=o.attr(s.$attr[e])}}),a(h,function(t,r){p[r]=e(t.replace(n,g))}),i.$watch(c,function(e){var n=parseFloat(e),r=isNaN(n);r||n in h||(n=t.pluralCat(n-d)),n===l||r&&isNaN(l)||(v(),v=i.$watch(p[n],u),l=n)})}}}],Co=["$parse","$animate",function(t,o){var s="$$NG_REMOVED",u=r("ngRepeat"),l=function(t,e,n,r,i,a,o){t[n]=r,i&&(t[i]=a),t.$index=e,t.$first=0===e,t.$last=e===o-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},c=function(t){return t.clone[0]},f=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,d){var h=d.ngRepeat,p=e.createComment(" end ngRepeat: "+h+" "),$=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!$)throw u("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",h);var m=$[1],g=$[2],v=$[3],y=$[4];if($=m.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!$)throw u("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",m);var b=$[3]||$[1],w=$[2];if(v&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(v)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(v)))throw u("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",v);var x,k,S,C,A={$id:Ue};return y?x=t(y):(S=function(t,e){return Ue(e)},C=function(t){return t}),function(t,e,r,d,$){x&&(k=function(e,n,r){return w&&(A[w]=e),A[b]=n,A.$index=r,x(t,A)});var m=le();t.$watchCollection(g,function(r){var d,g,y,x,A,O,E,j,N,T,M,P,V=e[0],q=le();if(v&&(t[v]=r),i(r))N=r,j=k||S;else{j=k||C,N=[];for(var D in r)r.hasOwnProperty(D)&&"$"!=D.charAt(0)&&N.push(D);N.sort()}for(x=N.length,M=new Array(x),d=0;x>d;d++)if(A=r===N?d:N[d],O=r[A],E=j(A,O,d),m[E])T=m[E],delete m[E],q[E]=T,M[d]=T;else{if(q[E])throw a(M,function(t){t&&t.scope&&(m[t.id]=t)}),u("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",h,E,O);M[d]={id:E,scope:n,clone:n},q[E]=!0}for(var R in m){if(T=m[R],P=ue(T.clone),o.leave(P),P[0].parentNode)for(d=0,g=P.length;g>d;d++)P[d][s]=!0;T.scope.$destroy()}for(d=0;x>d;d++)if(A=r===N?d:N[d],O=r[A],T=M[d],T.scope){y=V;do y=y.nextSibling;while(y&&y[s]);c(T)!=y&&o.move(ue(T.clone),null,Qr(V)),V=f(T),l(T.scope,d,b,O,w,A,x)}else $(function(t,e){T.scope=e;var n=p.cloneNode(!1);t[t.length++]=n,o.enter(t,null,Qr(V)),V=n,T.clone=t,q[T.id]=T,l(T.scope,d,b,O,w,A,x)});m=q})}}}}],Ao="ng-hide",Oo="ng-hide-animate",Eo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngShow,function(e){t[e?"removeClass":"addClass"](n,Ao,{tempClasses:Oo})})}}}],jo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngHide,function(e){t[e?"addClass":"removeClass"](n,Ao,{tempClasses:Oo})})}}}],No=Ar(function(t,e,n){t.$watchCollection(n.ngStyle,function(t,n){n&&t!==n&&a(n,function(t,n){e.css(n,"")}),t&&e.css(t)})}),To=["$animate",function(t){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,o){var s=i.ngSwitch||i.on,u=[],l=[],c=[],f=[],d=function(t,e){return function(){t.splice(e,1)}};n.$watch(s,function(n){var r,i;for(r=0,i=c.length;i>r;++r)t.cancel(c[r]);for(c.length=0,r=0,i=f.length;i>r;++r){var s=ue(l[r].clone);f[r].$destroy();var h=c[r]=t.leave(s);h.then(d(c,r))}l.length=0,f.length=0,(u=o.cases["!"+n]||o.cases["?"])&&a(u,function(n){n.transclude(function(r,i){f.push(i);var a=n.element;r[r.length++]=e.createComment(" end ngSwitchWhen: ");var o={clone:r};l.push(o),t.enter(r,a.parent(),a)})})})}}}],Mo=Ar({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:e})}}),Po=Ar({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:e})}}),Vo=Ar({restrict:"EAC",link:function(t,e,n,i,a){if(!a)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",z(e));a(function(t){e.empty(),e.append(t)})}}),qo=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var r=n.id,i=e[0].text;t.put(r,i)}}}}],Do=r("ngOptions"),Ro=m({restrict:"A",terminal:!0}),Io=["$compile","$parse",function(t,r){var i=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\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]+?))?$/,s={$setViewValue:p};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(t,e,n){var r,i,a=this,o={},u=s;a.databound=n.ngModel,a.init=function(t,e,n){u=t,r=e,i=n},a.addOption=function(e,n){oe(e,'"option value"'),o[e]=!0,u.$viewValue==e&&(t.val(e),i.parent()&&i.remove()),n&&n[0].hasAttribute("selected")&&(n[0].selected=!0)},a.removeOption=function(t){this.hasOption(t)&&(delete o[t],u.$viewValue===t&&this.renderUnknownOption(t))},a.renderUnknownOption=function(e){var n="? "+Ue(e)+" ?";i.val(n),t.prepend(i),t.val(n),i.prop("selected",!0)},a.hasOption=function(t){return o.hasOwnProperty(t)},e.$on("$destroy",function(){a.renderUnknownOption=p})}],link:function(s,u,l,c){function f(t,e,n,r){n.$render=function(){var t=n.$viewValue;r.hasOption(t)?(C.parent()&&C.remove(),e.val(t),""===t&&p.prop("selected",!0)):g(t)&&p?e.val(""):r.renderUnknownOption(t)},e.on("change",function(){t.$apply(function(){C.parent()&&C.remove(),n.$setViewValue(e.val())})})}function d(t,e,n){var r;n.$render=function(){var t=new Le(n.$viewValue);a(e.find("option"),function(e){e.selected=v(t.get(e.value))})},t.$watch(function(){I(r,n.$viewValue)||(r=R(n.$viewValue),n.$render())}),e.on("change",function(){t.$apply(function(){var t=[];a(e.find("option"),function(e){e.selected&&t.push(e.value)}),n.$setViewValue(t)})})}function h(e,s,u){function l(t,n,r){return I[O]=r,N&&(I[N]=n),t(e,I)}function c(){e.$apply(function(){var t,n=P(e)||[];if(y)t=[],a(s.val(),function(e){e=q?D[e]:e,t.push(f(e,n[e]))});else{var r=q?D[s.val()]:s.val();t=f(r,n[r])}u.$setViewValue(t),g()})}function f(t,e){if("?"===t)return n;if(""===t)return null;var r=j?j:M;return l(r,t,e)}function d(){var t,n=P(e);if(n&&ci(n)){t=new Array(n.length);for(var r=0,i=n.length;i>r;r++)t[r]=l(A,r,n[r]);return t}if(n){t={};for(var a in n)n.hasOwnProperty(a)&&(t[a]=l(A,a,n[a]))}return t}function h(t){var e;if(y)if(q&&ci(t)){e=new Le([]);for(var n=0;n<t.length;n++)e.put(l(q,null,t[n]),!0)}else e=new Le(t);else q&&(t=l(q,null,t));return function(n,r){var i;return i=q?q:j?j:M,y?v(e.remove(l(i,n,r))):t===l(i,n,r)}}function p(){x||(e.$$postDigest(g),x=!0)}function m(t,e,n){t[e]=t[e]||0,t[e]+=n?1:-1}function g(){x=!1;var t,n,r,i,c,f,d,p,g,b,C,O,E,j,M,V,_,U={"":[]},L=[""],F=u.$viewValue,H=P(e)||[],B=N?o(H):H,z={},G=h(F),W=!1;for(D={},O=0;b=B.length,b>O;O++)d=O,N&&(d=B[O],"$"===d.charAt(0))||(p=H[d],t=l(T,d,p)||"",(n=U[t])||(n=U[t]=[],L.push(t)),E=G(d,p),W=W||E,V=l(A,d,p),V=v(V)?V:"",_=q?q(e,I):N?B[O]:O,q&&(D[_]=d),n.push({id:_,label:V,selected:E}));
+
for(y||(w||null===F?U[""].unshift({id:"",label:"",selected:!W}):W||U[""].unshift({id:"?",label:"",selected:!0})),C=0,g=L.length;g>C;C++){for(t=L[C],n=U[t],R.length<=C?(i={element:S.clone().attr("label",t),label:n.label},c=[i],R.push(c),s.append(i.element)):(c=R[C],i=c[0],i.label!=t&&i.element.attr("label",i.label=t)),j=null,O=0,b=n.length;b>O;O++)r=n[O],(f=c[O+1])?(j=f.element,f.label!==r.label&&(m(z,f.label,!1),m(z,r.label,!0),j.text(f.label=r.label),j.prop("label",f.label)),f.id!==r.id&&j.val(f.id=r.id),j[0].selected!==r.selected&&(j.prop("selected",f.selected=r.selected),Xr&&j.prop("selected",f.selected))):(""===r.id&&w?M=w:(M=k.clone()).val(r.id).prop("selected",r.selected).attr("selected",r.selected).prop("label",r.label).text(r.label),c.push(f={element:M,label:r.label,id:r.id,selected:r.selected}),m(z,r.label,!0),j?j.after(M):i.element.append(M),j=M);for(O++;c.length>O;)r=c.pop(),m(z,r.label,!1),r.element.remove()}for(;R.length>C;){for(n=R.pop(),O=1;O<n.length;++O)m(z,n[O].label,!1);n[0].element.remove()}a(z,function(t,e){t>0?$.addOption(e):0>t&&$.removeOption(e)})}var C;if(!(C=b.match(i)))throw Do("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",b,z(s));var A=r(C[2]||C[1]),O=C[4]||C[6],E=/ as /.test(C[0])&&C[1],j=E?r(E):null,N=C[5],T=r(C[3]||""),M=r(C[2]?C[1]:O),P=r(C[7]),V=C[8],q=V?r(C[8]):null,D={},R=[[{element:s,label:""}]],I={};w&&(t(w)(e),w.removeClass("ng-scope"),w.remove()),s.empty(),s.on("change",c),u.$render=g,e.$watchCollection(P,p),e.$watchCollection(d,p),y&&e.$watchCollection(function(){return u.$modelValue},p)}if(c[1]){for(var p,$=c[0],m=c[1],y=l.multiple,b=l.ngOptions,w=!1,x=!1,k=Qr(e.createElement("option")),S=Qr(e.createElement("optgroup")),C=k.clone(),A=0,O=u.children(),E=O.length;E>A;A++)if(""===O[A].value){p=w=O.eq(A);break}$.init(m,w,C),y&&(m.$isEmpty=function(t){return!t||0===t.length}),b?h(s,u,m):y?d(s,u,m):f(s,u,m,$)}}}}],_o=["$interpolate",function(t){var e={addOption:p,removeOption:p};return{restrict:"E",priority:100,compile:function(n,r){if(g(r.value)){var i=t(n.text(),!0);i||r.$set("value",n.text())}return function(t,n,r){var a="$selectController",o=n.parent(),s=o.data(a)||o.parent().data(a);s&&s.databound||(s=e),i?t.$watch(i,function(t,e){r.$set("value",t),e!==t&&s.removeOption(e),s.addOption(t,n)}):s.addOption(r.value,n),n.on("$destroy",function(){s.removeOption(r.value)})}}}}],Uo=m({restrict:"E",terminal:!1}),Lo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){r&&(n.required=!0,r.$validators.required=function(t,e){return!n.required||!r.$isEmpty(e)},n.$observe("required",function(){r.$validate()}))}}},Fo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,i,a){if(a){var o,s=i.ngPattern||i.pattern;i.$observe("pattern",function(t){if(b(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,t,z(e));o=t||n,a.$validate()}),a.$validators.pattern=function(t){return a.$isEmpty(t)||g(o)||o.test(t)}}}}},Ho=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=-1;n.$observe("maxlength",function(t){var e=d(t);i=isNaN(e)?-1:e,r.$validate()}),r.$validators.maxlength=function(t,e){return 0>i||r.$isEmpty(e)||e.length<=i}}}}},Bo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=0;n.$observe("minlength",function(t){i=d(t)||0,r.$validate()}),r.$validators.minlength=function(t,e){return r.$isEmpty(e)||e.length>=i}}}}};return t.angular.bootstrap?(console.log("WARNING: Tried to load angular more than once."),void 0):(re(),he(si),Qr(e).ready(function(){X(e,Q)}),void 0)}(window,document),!window.angular.$$csp()&&window.angular.element(document).find("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;}</style>'),angular.module("app",["angularplasmid"]),function(){"use strict";angular.module("angularplasmid.services",[]).factory("SVGUtil",function(){function t(t,e){var n="round";return"undefined"==typeof e||0===+e?Math[n](t):(t=+t,e=+e,isNaN(t)||"number"!=typeof e||e%1!==0?0/0:(t=t.toString().split("e"),t=Math[n](+(t[0]+"e"+(t[1]?+t[1]-e:-e))),t=t.toString().split("e"),+(t[0]+"e"+(t[1]?+t[1]+e:e))))}function e(t){d.push(t)}function n(t){var e;for(e=0;e<d.length;e+=1)if(d[e].id===t)return d[e]}function r(t,e,n,r){var i=(r-90)*Math.PI/180;return{x:t+n*Math.cos(i),y:e+n*Math.sin(i)}}function i(t,e){var n,r,i=["id","name","class","style","filter","ng-attr-style","ng-attr-class","ng-class"];for(r=0;r<i.length;r+=1)n=i[r],t[0].hasAttribute(n)&&(e.attr(n,t.attr(n)),t.removeAttr(n))}function a(t,e,n){var r,i="http://www.w3.org/2000/svg",a=document.createElementNS(i,t);return n=n||[],angular.forEach(e,function(t){n.indexOf(t)<0&&(r=e[t],null===r||t.match(/\$/)||"string"==typeof r&&""===r||a.setAttribute(t,r))}),a}function o(t){angular.forEach(["id","class","style"],function(e){t.removeAttribute(e)})}function s(t,e,n,i){var a,o,s;return t=Number(t||0),e=Number(e||0),n=Number(n||0),i=Number(i||0),a={start:r(t,e,n,359.99),end:r(t,e,n,0)},o={start:r(t,e,n+i,359.99),end:r(t,e,n+i,0)},s=["M",a.start.x,a.start.y,"A",n,n,0,1,0,a.end.x,a.end.y,"M",o.start.x,o.start.y,"A",n+i,n+i,0,1,0,o.end.x,o.end.y].join(" ")}function u(t,e,n,i,a,o,s,u){var l,c,f,d,h,p,$,m,g,v,y,b,w;return t=Number(t),e=Number(e),n=Number(n),i=Number(i),a=Number(a),o=Number(o),s=s||{width:0,length:0,angle:0},u=u||{width:0,length:0,angle:0},i===a?(c=r(t,e,n,i),d=r(t,e,n+o,i),l=["M",c.x,c.y,"L",d.x,d.y].join(" ")):1===o?(c=r(t,e,n,i),d=r(t,e,n,a),h=a>i?180>=a-i?"0":"1":180>=a-i?"1":"0",l=["M",c.x,c.y,"A",n,n,0,h,1,d.x,d.y].join(" ")):(a-=u.length<0?0:u.length,i+=s.length<0?0:s.length,c=r(t,e,n,a),d=r(t,e,n,i),p=r(t,e,n-s.width,i+s.angle),$=r(t,e,n+o/2,i-s.length),m=r(t,e,n+o+s.width,i+s.angle),g=r(t,e,n+o,i),v=r(t,e,n+o+u.width,a-u.angle),y=r(t,e,n+o/2,a+u.length),b=r(t,e,n-u.width,a-u.angle),w=r(t,e,n,a),f=r(t,e,n+o,a),h=180>=a-i?"0":"1",l=["M",c.x,c.y,"A",n,n,0,h,0,d.x,d.y,"L",p.x,p.y,"L",$.x,$.y,"L",m.x,m.y,"L",g.x,g.y,"A",n+o,n+o,0,h,1,f.x,f.y,"L",v.x,v.y,"L",y.x,y.y,"L",b.x,b.y,"L",w.x,w.y,"z"].join(" ")),l}function l(e,n,r,i,a,o){e=Number(e||0),n=Number(n||0),r=Number(r||0),i=Number(i||0),a=Number(a||0),o=Number(o||2);var s,u,l,c,f=Number(i)>0?Number(a)/Number(i):0,d=2*Math.PI/f,h=-1,p="";for(c=0;f>c;c+=1)s=d*c-Math.PI/2,l=Math.cos(s),u=Math.sin(s),p+="M"+t(e+r*l,h)+","+t(n+r*u,h)+" L"+t(e+(r+o)*l,h)+","+t(n+(r+o)*u,h)+" ";return p=p||"M 0,0"}function c(e,n,r,i,a){e=Number(e),n=Number(n),r=Number(r),i=Number(i),a=Number(a);var o,s,u,l,c=Number(i)>0?Number(a)/Number(i):0,f=2*Math.PI/c,d=-1,h=[];for(l=0;c>l;l+=1)o=f*l-Math.PI/2,u=Math.cos(o),s=Math.sin(o),h.push({x:t(e+r*u,d),y:t(n+r*s,d),text:i*l});return h}function f(t,e){return isNaN(t)?e||0:Number(t)}var d=[],h=[],p=[];return{api:{addPlasmid:e,plasmids:d,plasmid:n,plasmidtracks:h,trackmarkers:p},util:{polarToCartesian:r,swapProperties:i,Numeric:f},svg:{createNode:a,removeAttributes:o,path:{donut:s,arc:u,scale:l},element:{scalelabels:c}}}})}(),function(){"use strict";angular.module("angularplasmid",["angularplasmid.services"]).directive("plasmidapi",["SVGUtil",function(t){return{restrict:"AE",link:function(e,n,r){e[r.name]=t.api}}}]).directive("plasmid",["SVGUtil",function(){return{restrict:"AE",type:"svg",template:'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>',replace:!0,transclude:!0,require:"plasmid",scope:{plasmidheight:"@",plasmidwidth:"@",sequencelength:"@",sequence:"@",plasmidclass:"@",plasmidstyle:"@"},link:{pre:function(t,e,n,r){r.init(e)},post:function(t,e,n,r,i){i(t.$parent,function(t){e.append(t)}),t.$watchGroup(["plasmidheight","plasmidwidth","sequencelength","sequence","plasmidclass","plasmidstyle"],function(){r.draw()})}},controller:["$scope","SVGUtil",function(t,e){var n,r,i=[];r=this,r.elementtype="plasmid",r.init=function(t){e.api.addPlasmid(r),n=t,r.id=n.attr("id")},r.draw=function(){var t=r.dimensions,e=n.plasmidclass,a=n.plasmidstyle;n.attr("height",t.height),n.attr("width",t.width),e&&n.attr("class",e),a&&n.attr("style",a),angular.forEach(i,function(t){t.draw()})},r.addTrack=function(t){i.push(t)},Object.defineProperty(r,"center",{get:function(){var t=r.dimensions;return{x:t.width/2,y:t.height/2}}}),Object.defineProperty(r,"dimensions",{get:function(){return{height:e.util.Numeric(t.plasmidheight,300),width:e.util.Numeric(t.plasmidwidth,300)}}}),Object.defineProperty(r,"sequencelength",{get:function(){return r.sequence?r.sequence.length:e.util.Numeric(t.sequencelength)}}),Object.defineProperty(r,"sequence",{get:function(){return t.sequence}}),Object.defineProperty(r,"plasmidclass",{get:function(){return t.plasmidclass}}),Object.defineProperty(r,"plasmidstyle",{get:function(){return t.plasmidstyle}}),r.tracks=i}]}}]).directive("plasmidtrack",["SVGUtil","$compile",function(t,e){return{restrict:"AE",type:"svg",template:"<g><path></path></g>",replace:!0,transclude:!0,require:["plasmidtrack","^plasmid"],scope:{radius:"@",width:"@",trackclass:"@",trackstyle:"@",trackclick:"&"},link:{pre:function(t,e,n,r){var i=r[0],a=r[1],o=angular.element(e.children()[0]);i.init(o,a)},post:function(n,r,i,a,o){o(n.$parent,function(t){r.append(t)});var s=angular.element(r),u=angular.element(r.children()[0]),l=a[0];t.util.swapProperties(s,u),u.attr("fill-rule","evenodd"),e(u)(n.$parent),u.on("click",function(t){n.trackclick({$event:t,$track:l})}),n.$watchGroup(["radius","width","trackstyle","trackclass"],function(){l.draw()})}},controller:["$scope",function(e){var n,r,i,a=[],o=[],s=[];i=this,i.elementtype="plasmidtrack",i.init=function(t,e){n=e,n.addTrack(i),i.plasmid=n,r=t},i.draw=function(){var e=i.center,n=t.svg.path.donut(e.x,e.y,i.radius,i.width),u=i.trackclass,l=i.trackstyle;r.attr("d",n),u&&r.attr("class",u),l&&r.attr("style",l),angular.forEach(a,function(t){t.draw()}),angular.forEach(o,function(t){t.draw()}),angular.forEach(s,function(t){t.draw()})},i.addMarker=function(t){a.push(t)},i.addScale=function(t){o.push(t)},i.addLabel=function(t){s.push(t)},i.markergroup=function(t){var e=[];return angular.forEach(a,function(n){n.markergroup===t&&e.push(n)}),e},i.getPosition=function(e,r,a){a=Number(a||0),e=Number(e);var o,s,u=1,l=2,c=i.center,f=n.sequencelength;if(f>0){switch(s=e/f*360,r){case u:o=i.radius+a;break;case l:o=i.radius+i.width+a;break;default:o=i.radius+i.width/2+a}return t.util.polarToCartesian(c.x,c.y,o,s)}},Object.defineProperty(i,"center",{get:function(){return n.center}}),Object.defineProperty(i,"radius",{get:function(){return t.util.Numeric(e.radius,100)}}),Object.defineProperty(i,"width",{get:function(){return t.util.Numeric(e.width,25)}}),Object.defineProperty(i,"trackclass",{get:function(){return e.trackclass}}),Object.defineProperty(i,"trackstyle",{get:function(){return e.trackstyle}}),i.markers=a,i.scales=o,i.labels=s}]}}]).directive("trackscale",["SVGUtil","$compile",function(t,e){return{restrict:"AE",type:"svg",template:"<g><path></path><g></g></g>",replace:!0,transclude:!0,require:["trackscale","^plasmidtrack"],scope:{interval:"@",vadjust:"@",ticksize:"@",direction:"@",showlabels:"@",labelvadjust:"@",labelclass:"@",labelstyle:"@",tickclass:"@",tickstyle:"@",scaleclick:"&"},link:{pre:function(t,e,n,r){var i=r[0],a=r[1],o=angular.element(e.children()[0]),s=angular.element(e.children()[1]);i.init(o,s,a)},post:function(n,r,i,a,o){var s,u,l;o(n.$parent,function(t){r.append(t)}),s=angular.element(r),u=angular.element(r.children()[0]),t.util.swapProperties(s,u),e(u)(n.$parent),u.on("click",function(t){n.scaleclick({$event:t,$scale:l})}),l=a[0],n.$watchGroup(["interval","vadjust","ticksize","labelvadjust","direction","showlabels","labelstyle","labelclass","tickstyle","tickclass"],function(){l.draw()})}},controller:["$scope",function(e){var n,r,i,a,o=15,s=3;r=this,r.elementtype="trackscale",r.init=function(t,e,o){n=o,n.addScale(r),r.track=n,i=t,a=e},r.draw=function(){var e=r.tickclass,o=r.tickstyle,s=n.center,u=t.svg.path.scale(s.x,s.y,r.radius,r.interval,r.total,r.ticksize);i.attr("d",u),e&&i.attr("class",e),o&&i.attr("style",o),r.showlabels?r.drawLabel():a.empty()},r.drawLabel=function(){function i(t){e.scaleclick({$event:t,$scale:r})}var o,s,u,l=n.center;for(u=t.svg.element.scalelabels(l.x,l.y,r.labelradius,r.interval,r.total),a.empty(),o=0;o<=u.length-1;o+=1)s=angular.element(t.svg.createNode("text")),r.labelclass&&s.attr("class",r.labelclass),r.labelstyle&&s.attr("style",r.labelstyle),s.attr("x",u[o].x),s.attr("y",u[o].y),s.attr("text-anchor","middle"),s.attr("alignment-baseline","middle"),s.text(u[o].text),s.on("click",i),a.append(s)},Object.defineProperty(r,"radius",{get:function(){return(r.inwardflg?n.radius:n.radius+n.width)+(r.inwardflg?-1:1)*r.vadjust+(r.inwardflg?-r.ticksize:0)}}),Object.defineProperty(r,"interval",{get:function(){return t.util.Numeric(e.interval)}}),Object.defineProperty(r,"vadjust",{get:function(){return t.util.Numeric(e.vadjust)}}),Object.defineProperty(r,"ticksize",{get:function(){return t.util.Numeric(e.ticksize,s)}}),Object.defineProperty(r,"inwardflg",{get:function(){return"in"===e.direction?!0:!1}}),Object.defineProperty(r,"total",{get:function(){return n.plasmid.sequencelength}}),Object.defineProperty(r,"showlabels",{get:function(){return"1"===e.showlabels?!0:!1}}),Object.defineProperty(r,"labelvadjust",{get:function(){return t.util.Numeric(e.labelvadjust,o)}}),Object.defineProperty(r,"tickclass",{get:function(){return e.tickclass}}),Object.defineProperty(r,"tickstyle",{get:function(){return e.tickstyle}}),Object.defineProperty(r,"labelclass",{get:function(){return e.labelclass}}),Object.defineProperty(r,"labelstyle",{get:function(){return e.labelstyle}}),Object.defineProperty(r,"labelradius",{get:function(){return r.radius+r.labelvadjust*(r.inwardflg?-1:1)}})}]}}]).directive("tracklabel",["SVGUtil",function(t){return{restrict:"AE",type:"svg",template:"<text></text>",replace:!0,transclude:!0,require:["tracklabel","^plasmidtrack"],scope:{text:"@",hadjust:"@",vadjust:"@",labelclass:"@",labelstyle:"@",labelclick:"&"},link:{pre:function(t,e,n,r){var i=r[0],a=r[1],o=angular.element(e[0]);i.init(o,a)},post:function(t,e,n,r,i){var a;i(t.$parent,function(t){e.append(t)}),e.attr("text-anchor","middle"),e.attr("alignment-baseline","middle"),e.on("click",function(e){t.labelclick({$event:e,$label:a})}),a=r[0],t.$watchGroup(["text","vadjust","hadjust","labelstyle","labelclass"],function(){a.draw()})}},controller:["$scope",function(e){var n,r,i;r=this,r.elementtype="tracklabel",r.init=function(t,e){n=e,n.addLabel(r),r.track=n,i=t},r.draw=function(){var t=n.center,e=r.labelclass,a=r.labelstyle;i.attr("x",t.x+r.hadjust),i.attr("y",t.y+r.vadjust),i.text(r.text),e&&i.attr("class",e),a&&i.attr("style",a)},Object.defineProperty(r,"center",{get:function(){return n.center}}),Object.defineProperty(r,"text",{get:function(){return e.text}}),Object.defineProperty(r,"labelclass",{get:function(){return e.labelclass}}),Object.defineProperty(r,"labelstyle",{get:function(){return e.labelstyle}}),Object.defineProperty(r,"hadjust",{get:function(){return t.util.Numeric(e.hadjust,0)}}),Object.defineProperty(r,"vadjust",{get:function(){return t.util.Numeric(e.vadjust,0)}}),Object.defineProperty(r,"dimensions",{get:function(){return i[0].getBBox()}})}]}}]).directive("trackmarker",["SVGUtil","$compile",function(t,e){return{restrict:"AE",type:"svg",template:"<g><path></path></g>",replace:!0,transclude:!0,require:["trackmarker","^plasmidtrack"],scope:{start:"@",end:"@",vadjust:"@",wadjust:"@",markergroup:"@",arrowstartlength:"@",arrowstartwidth:"@",arrowstartangle:"@",arrowendlength:"@",arrowendwidth:"@",arrowendangle:"@",markerclass:"@",markerstyle:"@",markerclick:"&"},link:{pre:function(t,e,n,r){var i=r[0],a=r[1],o=angular.element(e.children()[0]);i.init(o,a)},post:function(n,r,i,a,o){var s,u,l=a[0];o(n.$parent,function(t){r.append(t)}),s=angular.element(r),u=angular.element(r.children()[0]),t.util.swapProperties(s,u),e(u)(n.$parent),u.on("click",function(t){n.markerclick({$event:t,$marker:l})}),n.$watchGroup(["start","end","vadjust","wadjust","markergroup","markerclass","markerstyle","arrowstartlength","arrowstartwidth","arrowstartangle","arrowendlength","arrowendwidth","arrowendangle"],function(){l.draw()})}},controller:["$scope",function(e){var n,r,i,a=[];r=this,r.elementtype="trackmarker",r.init=function(t,e){n=e,n.addMarker(r),i=t,r.track=n},r.draw=function(){var t=r.markerclass,e=r.markerstyle;i.attr("d",r.getPath()),t&&i.attr("class",t),e&&i.attr("style",e),angular.forEach(a,function(t){t.draw()})},r.addMarkerLabel=function(t){a.push(t)},r.getPath=function(){var e=n.center,i=r.angle,a=r.radius;return t.svg.path.arc(e.x,e.y,a.inner,i.start,i.end,r.width,r.arrowstart,r.arrowend)},r.getPosition=function(e,i,a,o){var s,u,l,c,f,d="start",h="end",p="inner",$="outer";if(s=n.center,c=r.radius,f=r.angle,e=t.util.Numeric(e),i=t.util.Numeric(i),void 0!==o&&void 0!==a){switch(o){case p:u=c.inner+i;break;case $:u=c.outer+i;break;default:u=c.middle+i}switch(a){case d:l=f.start+e;break;case h:l=f.end+e;break;default:l=f.middle+e}return t.util.polarToCartesian(s.x,s.y,u,l)}return u={outer:c.outer+i,inner:c.inner+i,middle:c.middle+i},l={begin:f.start+e,end:f.end+e,middle:f.middle+e},{outer:{begin:t.util.polarToCartesian(s.x,s.y,u.outer,l.begin),middle:t.util.polarToCartesian(s.x,s.y,u.outer,l.middle),end:t.util.polarToCartesian(s.x,s.y,u.outer,l.end)},middle:{begin:t.util.polarToCartesian(s.x,s.y,u.middle,l.begin),middle:t.util.polarToCartesian(s.x,s.y,u.middle,l.middle),end:t.util.polarToCartesian(s.x,s.y,u.middle,l.end)},inner:{begin:t.util.polarToCartesian(s.x,s.y,u.inner,l.begin),middle:t.util.polarToCartesian(s.x,s.y,u.inner,l.middle),end:t.util.polarToCartesian(s.x,s.y,u.inner,l.end)}}},r.fireClick=function(t){e.markerclick({$event:t.$event,$marker:t.$marker})},Object.defineProperty(r,"center",{get:function(){return n.center}}),Object.defineProperty(r,"radius",{get:function(){return{inner:n.radius+r.vadjust,outer:n.radius+r.vadjust+r.width,middle:n.radius+r.vadjust+r.width/2}}}),Object.defineProperty(r,"angle",{get:function(){var i,a,o,s;return i=r.start/n.plasmid.sequencelength*360,s=e.end||e.start,a=t.util.Numeric(s)/n.plasmid.sequencelength*360,a+=i>a?360:0,o=i+(a-i)/2,{start:i,middle:o,end:a}}}),Object.defineProperty(r,"vadjust",{get:function(){return t.util.Numeric(e.vadjust)}}),Object.defineProperty(r,"wadjust",{get:function(){return t.util.Numeric(e.wadjust)}}),Object.defineProperty(r,"width",{get:function(){return n.width+r.wadjust}}),Object.defineProperty(r,"start",{get:function(){return t.util.Numeric(e.start)}}),Object.defineProperty(r,"end",{get:function(){return t.util.Numeric(e.end)}}),Object.defineProperty(r,"arrowstart",{get:function(){return{width:t.util.Numeric(e.arrowstartwidth),length:t.util.Numeric(e.arrowstartlength),angle:t.util.Numeric(e.arrowstartangle)}}}),Object.defineProperty(r,"arrowend",{get:function(){return{width:t.util.Numeric(e.arrowendwidth),length:t.util.Numeric(e.arrowendlength),angle:t.util.Numeric(e.arrowendangle)}}}),Object.defineProperty(r,"markergroup",{get:function(){return e.markergroup}}),Object.defineProperty(r,"markerclass",{get:function(){return e.markerclass}}),Object.defineProperty(r,"markerstyle",{get:function(){return e.markerstyle}}),Object.defineProperty(r,"sequence",{get:function(){var t=r.track.plasmid.sequence;return r.start>r.end?t.substring(r.start-1,t.length-1)+t.substring(0,r.end-1):t.substring(r.start-1,r.end-1)}}),r.labels=a}]}}]).directive("markerlabel",["SVGUtil","$compile",function(t,e){return{restrict:"AE",type:"svg",transclude:!0,template:'<g><path></path><path id="" style="fill:none;stroke:none"></path><text></text></g>',require:["markerlabel","^trackmarker"],replace:!0,scope:{text:"@",valign:"@",vadjust:"@",halign:"@",hadjust:"@",type:"@",showline:"@",linestyle:"@",lineclass:"@",labelstyle:"@",labelclass:"@",linevadjust:"@",labelclick:"&"},link:{pre:function(t,e,n,r){var i=r[0],a=r[1],o=angular.element(e[0]),s=angular.element(e.children()[0]),u=angular.element(e.children()[1]),l=angular.element(e.children()[2]);i.init(l,o,u,s,a)},post:function(n,r,i,a,o){o(n.$parent,function(t){r.append(t)});var s=a[0],u=a[1],l=angular.element(r),c=angular.element(r.children()[2]);c.attr("text-anchor","middle"),c.attr("alignment-baseline","middle"),t.util.swapProperties(l,c),e(c)(n.$parent),i.labelclick?c.on("click",function(t){n.labelclick({$event:t,$label:s})}):c.on("click",function(t){u.fireClick({$event:t,$marker:u})}),n.$watchGroup(["text","type","valign","vadjust","halign","hadjust","showline","linevadjust","linestyle","labelclass","labelstyle"],function(){s.draw()})}},controller:["$scope","$compile",function(e,n){var r,i,a,o,s,u,l,c;i=this,i.elementtype="markerlabel",i.init=function(t,e,n,s,u){var f="TPATH"+(Math.random()+1).toString(36).substring(3,7);r=u,r.addMarkerLabel(i),i.marker=r,a=t,o=n,l=s,c=e,o.attr("id",f)},i.draw=function(){var t,c,f,d,h,p="middle",$="inner",m="outer",g="start",v="end",y=0,b=0,w=i.labelclass,x=i.labelstyle;if(w&&a.attr("class",w),x&&a.attr("style",x),"path"===i.type)switch(a.attr("x",""),a.attr("y",""),s||(u=document.createElementNS("http://www.w3.org/2000/svg","textPath"),u.setAttributeNS("http://www.w3.org/1999/xlink","href","#"+o.attr("id")),s=angular.element(u),n(s)(e),a.empty(),a.append(s)),u.textContent=i.text,y=window.getComputedStyle(a[0]).fontSize.replace("px",""),b=i.valign===m?0:i.valign===$?Number(y||0):Number(y||0)/2,o.attr("d",i.getPath(i.hadjust,i.vadjust-b,i.halign,i.valign)),i.halign){case g:a.attr("text-anchor","start"),s[0].setAttribute("startOffset","0%");break;case v:a.attr("text-anchor","end"),s[0].setAttribute("startOffset","100%");break;default:a.attr("text-anchor","middle"),s[0].setAttribute("startOffset","50%")}else s&&(s.remove(),s=null),t=r.getPosition(i.hadjust,i.vadjust,i.halign,i.valign),a.attr("x",t.x),a.attr("y",t.y),a.text(i.text);i.showlineflg?(c=r.getPosition(i.hadjust,i.vadjust+i.linevadjust,i.halign,i.valign),d=r.getPosition(),h=i.valign===$?d.inner:i.valign===p?d.middle:d.outer,f=i.halign===g?h.begin:i.halign===v?h.end:h.middle,l.attr("d",["M",c.x,c.y,"L",f.x,f.y].join(" ")),i.linestyle||i.lineclass||l.attr("style","stroke:#000"),i.linestyle&&l.attr("style",i.linestyle),i.lineclass&&l.attr("class",i.lineclass)):l.removeAttr("d")},i.getPath=function(e,n,i,a){var o,s,u,l,c,f="inner",d="outer",h="start",p="end",$=r.center;switch(s=r.radius,a){case f:o=s.inner;break;case d:o=s.outer;break;default:o=s.middle}switch(u=r.angle,i){case h:l=u.start,c=u.start+359.99;break;case p:l=u.end+1,c=u.end;break;default:l=u.middle+180.05,c=u.middle+179.95}return t.svg.path.arc($.x,$.y,o+Number(n||0),l+Number(e||0),c+Number(e||0),1)},Object.defineProperty(i,"showlineflg",{get:function(){return"1"===e.showline?!0:!1}}),Object.defineProperty(i,"halign",{get:function(){return e.halign||"middle"}}),Object.defineProperty(i,"valign",{get:function(){return e.valign||"middle"}}),Object.defineProperty(i,"hadjust",{get:function(){return t.util.Numeric(e.hadjust)}}),Object.defineProperty(i,"vadjust",{get:function(){return t.util.Numeric(e.vadjust)}}),Object.defineProperty(i,"type",{get:function(){return e.type}}),Object.defineProperty(i,"linevadjust",{get:function(){return t.util.Numeric(e.linevadjust)}}),Object.defineProperty(i,"labelclass",{get:function(){return e.labelclass}}),Object.defineProperty(i,"labelstyle",{get:function(){return e.labelstyle}}),Object.defineProperty(i,"linestyle",{get:function(){return e.linestyle}}),Object.defineProperty(i,"lineclass",{get:function(){return e.lineclass}}),Object.defineProperty(i,"text",{get:function(){return e.text}})}]}}]).directive("svgelement",["SVGUtil",function(){return{restrict:"AE",template:function(t,e){return"<"+e.type+"></"+e.type+">"},type:"svg",replace:!0,transclude:!0,require:["^plasmid"],scope:{},link:function(t,e,n,r,i){i(t.$parent,function(t){e.append(t)})}}}])}(),function(){"use strict";angular.element(document).ready(function(){angular.bootstrap(document,["app"])})}();
+
</script>
+
  
 +
        .gold {
 +
            fill: rgb(192, 128, 64)
 +
        }
 +
    </style>
 
     <script href="https://2018.igem.org/Team:Bordeaux/Template/bootstrapjs?action=raw"></script> </body>
 
     <script href="https://2018.igem.org/Team:Bordeaux/Template/bootstrapjs?action=raw"></script> </body>

Latest revision as of 09:59, 16 October 2018

Loading...

Design

Recent studies have shown that multiple organisms have the ability of metabolizing 5-hydroxymethylfurfural (HMF). For instance, enzyme able to oxidize HMF into Furan-2,5-dicarboxylic acid (FDCA) has been discovered in fungal species such as Caldariomyces fumago [1] or in prokaryotic species Cupriavidus basilensis (C. basilensis) [2]. and Methylovorus sp. [4].

As we intended to work with Escherichia coli (E. coli), we focused on the enzymes discovered in prokaryotes. Due to glycosylations on the enzymes that has been found in Caldaryomyces fumago and Eukaryotes/Prokaryotes gene compatibility issue, fungal enzymes have been dismissed. The following section describes the enzymes selected to achieve an efficient transformation of HMF into FDCA.

HmfH is an enzyme that has been discovered in C. basilensis. This enzyme is part of a gene cluster implied in furanic compound degradation. HmfH homologues has also been found in several other bacterial species [6]. In a study, HmfH gene has been cloned into Pseudomonas putida in order to enable this bacteria to synthetize FDCA from HMF. HmfH catalyse two successive oxidations that transform HMF into 5-(hydroxymethyl)furoic acid ( HMF acid) and then into FDCA [5] ( fig 2. ). The modified P. putida with HmfH was able to produce FDCA without excessive amount of other furan derivatives. One issue with this enzyme is that the second oxidation of HMF acid into FDCA is slower than the first one. It results in the accumulation of the intermediate product, HMF acid. In fed batch culture the accumulation of intermediate product could lead to an efficient production of high pure FDCA.

One way to compensate for that is to add other enzymes to the artificial metabolic pathway, in order to speed up the second oxidation of HMF acid into FDCA.

An enzyme of interest, HMF dehydrogenase (Aldh1), is found to catalyse identical reaction as HmfH. This enzyme oxidizes HMF into FDCA with HMF acid as a reaction intermediate. The Kcat of this enzyme on 5-HMF has been estimated to 5.1 mM-1.min-1 [8]. By acting synergically with HmfH, Aldh1 could limit the accumulation of HmfAcid.

HmfO protein structure
HmfO protein structure

An other enzyme that may turn worthwhile for the biosynthesis of FDCA is HmfO (5-(hydroxymethyl)furfural Oxydase). This enzyme is present in Methylovorus sp. and in C. basilensis. HmfO belongs to a C. basilensis HMF14 gene cluster involved in Hmf degradation pathway. HmfO and HmfH are homologous, they both belongs to the GMC (glucose-methanol-choline) oxidoreductase proteins family. The N-ter GMC domain bind to FAD, and release H2O2 as a byproduct [4]. However, unlike HmfH , HmfO needs three successive oxidations of HMF to reach FDCA (fig 1.). Thereby two intermediary compounds are formed, 2,5-Furandicarboxaldehyde (furfural) (DFF) and 5-formyl-2-furancarboxylic acid (FFA) [4].

Fig 2. Artificial metabolic pathway of oxidation of HMF into FDCA, using HmfH,HmfO and Aldh1 enzyms. Oxydation reactions
            imply the use of a FAD co-factor and the release of hydrogen peroxyde.
Artificial metabolic pathway of oxidation of HMF into FDCA, using HmfH,HmfO and Aldh1 enzyms. Oxydation reactions imply the use of a FAD co-factor and the release of hydrogen peroxyde.

In order to obtain an efficient whole cell biocatalyst genes coding for the three previously described enzymes have to be under control of a strong promoter. To maximize the expression of these proteins it was planned to put them under control of promoter improved by freiburg 2011 iGem team and characterized by Slovenia HS 2015 iGem team (BBa_K608002).

Genes overexpression could be a drag on bacterial growth. In order to able bacterial culture to reach stationary phase quicker it was planned to use an inducible promoter.The part pBAD strong (BBa_K206000) , registered by iGEM09_British_Columbia, offer a high expression level.

In order to study each proteins activity individually, it was planned to clone each one of them in pSB1-C3 under control of BBa_K608002 (“strong promoter strong RBS”). Moreover, to study their joint activity, an operon structure of HmfH, HmfO and Aldh1 under control of an constitutive and inducible promoter has been designed (fig 3).

See standards biobrick constructions below (click to view it fullscreen)

References :

  1. 5-hydroxymethylfurfural conversion by fungal aryl-alcohol oxidase and unspecific peroxygenase Juan Carro, Patricia Ferreira, Leonor Rodrıguez, Alicia Prieto, Ana Serrano, Beatriz Balcells, Ana Arda, Jesus Jim enez-Barbero, Ana Gutierrez, Rene Ullrich, Martin Hofrichter and Angel T. Martınez
  2. Identification and characterization of the furfural and 5-(hydroxymethyl)furfural degradation pathways of Cupriavidus basilensis HMF14. Koopman F, Wierckx N, de Winde JH, Ruijssenaars HJ.
  3. "Enzyme-catalyzed oxidation of 5-hydroxymethylfurfural to furan-2,5-dicarboxylic acid." Dijkman W.P., Groothuis D.E., Fraaije M.W.
  4. "Discovery and characterization of a 5-hydroxymethylfurfural oxidase from Methylovorus sp. strain MP688." Dijkman W.P., Fraaije M.W.
  5. 2010 Aug;101(16):6291-6. doi: 10.1016/j.biortech.2010.03.050. Epub 2010 Apr 3. Efficient whole-cell biotransformation of 5-(hydroxymethyl)furfural into FDCA, 2,5-furandicarboxylic acid. Koopman F1, Wierckx N, de Winde JH, Ruijssenaars HJ.
  6. Microbial degradation of furanic compounds: biochemistry, genetics, and impact ; Nick Wierckx, Frank Koopman, Harald J. Ruijssenaars, and Johannes H. de Winde
  7. Inhibition performance of lignocellulose degradation products on industrial cellulase enzymes during cellulose hydrolysis. Jing X, Zhang X, Bao J.
  8. Metabolic engineering of Raoultella ornithinolytica BF60 for the production of 2, 5- 2 furandicarboxylic acid from 5-hydroxymethylfurfural Gazi Sakir Hossain, Haibo Yuan, Jianghua Li, Hyun-dong Shin, Miao Wang, Guocheng Du, Jian Chen, Long Liu