<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <title>Cangjie Code Coverage Report</title>
  <style media="screen" type="text/css">
  body
{
  color: #000000;
  background-color: #FFFFFF;
}

/* Link formats: use maroon w/underlines */
a:link
{
  color: navy;
  text-decoration: underline;
}
a:visited
{
  color: maroon;
  text-decoration: underline;
}
a:active
{
  color: navy;
  text-decoration: underline;
}

/*** TD formats ***/
td
{
  font-family: sans-serif;
}
td.title
{
  text-align: center;
  padding-bottom: 10px;
  font-size: 20pt;
  font-weight: bold;
}

/* TD Header Information */
td.headerName
{
  text-align: right;
  color: black;
  padding-right: 6px;
  font-weight: bold;
  vertical-align: top;
  white-space: nowrap;
}
td.headerValue
{
  text-align: left;
  color: #284FA8;
  font-family: sans-serif;
  font-weight: bold;
  white-space: nowrap;
}

td.headerTableEntry
{
  text-align: right;
  color: black;
  font-weight: bold;
  white-space: nowrap;
  padding-left: 12px;
  padding-right: 4px;
  background-color: LightBlue;
}
td.headerValueLeg
{
  text-align: left;
  color: black;
  font-size: 80%;
  white-space: nowrap;
  padding-top: 2px;
}

/* Color of horizontal ruler */
td.hr
{
  background-color: navy;
  height:3px;
}
/* Footer format */
td.footer
{
  text-align: center;
  padding-top: 3px;
  font-family: sans-serif;
}

/* Coverage Table */

td.coverTableHead
{
  text-align: center;
  color: white;
  background-color: SteelBlue;
  font-family: sans-serif;
  font-size: 120%;
  white-space: nowrap;
  padding-left: 4px;
  padding-right: 4px;
}
td.coverFile
{
  text-align: left;
  padding-left: 10px;
  padding-right: 20px;
  color: black;
  background-color: LightBlue;
  font-family: monospace;
  font-weight: bold;
  font-size: 110%;
}
td.coverBar
{
  padding-left: 10px;
  padding-right: 10px;
  background-color: LightBlue;
}
td.coverBarOutline
{
  background-color: white;
}
td.coverValue
{
  padding-top: 2px;
  text-align: right;
  padding-left: 10px;
  padding-right: 10px;
  font-family: sans-serif;
  white-space: nowrap;
  font-weight: bold;
}

/* Link Details */
a.detail:link
{
  color: #B8D0FF;
  font-size:80%;
}
a.detail:visited
{
  color: #B8D0FF;
  font-size:80%;
}
a.detail:active
{
  color: #FFFFFF;
  font-size:80%;
}

.graphcont{
    color:#000;
    font-weight:700;
    float:left
}

.graph{
    float:left;
    background-color: white;
    position:relative;
    width:280px;
    padding:0
}

.graph .bar{
    display:block;
    position:relative;
    border:black 1px solid;
    text-align:center;
    color:#fff;
    height:10px;
    font-family:Arial,Helvetica,sans-serif;
    font-size:12px;
    line-height:1.9em
}

.graph .bar span{
    position:absolute;
    left:1em
}

td.coveredLine,
span.coveredLine
{
    background-color: LightGreen!important;
}

td.uncoveredLine,
span.uncoveredLine
{
    background-color: LightPink!important;
}

.linebranch, .linecount
{
    border-right: 1px gray solid;
    background-color: lightgray;
}

.linebranchDetails
{
    position: relative;
}
.linebranchSummary
{
    cursor: help;
}
.linebranchContents
{
    font-family: sans-serif;
    font-size: small;
    text-align: left;
    position: absolute;
    width: 15em;
    padding: 1em;
    background: white;
    border: solid gray 1px;
    box-shadow: 5px 5px 10px gray;
    z-index: 1; /* show in front of the table entries */
}

.takenBranch
{
    color: Green!important;
    cursor: help;
}

.notTakenBranch
{
    color: Red!important;
    cursor: help;
}

.src
{
    padding-left: 12px;
}

.srcHeader,
span.takenBranch,
span.notTakenBranch
{
    font-family: monospace;
    font-weight: bold;
}

pre
{
    height : 15px;
    margin-top: 0;
    margin-bottom: 0;
}

.lineno
{
    background-color: #EFE383;
    border-right: 1px solid #BBB15F;
}
  </style>
</head>

<body>

  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr><td class="title">Cangjie Code Coverage Report</td></tr>
    <tr><td class="hr"></td></tr>

    <tr>
      <td width="100%">
        <table cellpadding="1" border="0" width="100%">
          <tr>
            <td class="headerName">File:</td>
            <td class="headerValue">src/yaml/decode.cj</td>
            <td width="5%"></td>
            <td width="15%"></td>
            <td width="10%" class="headerValue" style="text-align:right;">Hit</td>
            <td width="10%" class="headerValue" style="text-align:right;">Total</td>
            <td width="15%" class="headerValue" style="text-align:right;">Coverage</td>
          </tr>
          <tr>
            <td class="headerName">Date:</td>
            <td class="headerValue">2023-03-01 09:19:56</td>
            <td></td>
            <td class="headerName">Lines:</td>
            <td class="headerTableEntry">103</td>
            <td class="headerTableEntry">109</td>
            <td class="headerTableEntry" style="background-color:LightGreen">94.5 %</td>
          </tr>
          <tr>
            <td class="headerName">Legend:</td>
            <td class="headerValueLeg">
              <span style="background-color:LightPink">low: &lt; 75.0 %</span>
              <span style="background-color:Yellow">medium: &gt;= 75.0 %</span>
              <span style="background-color:LightGreen">high: &gt;= 90.0 %</span>
            </td>
            <td></td>
            <td class="headerName">Branches:</td>
            <td class="headerTableEntry">-</td>
            <td class="headerTableEntry">-</td>
            <td class="headerTableEntry" style="background-color:LightGreen">-</td>
          </tr>
        </table>
      </td>
    </tr>

    <tr><td class="hr"></td></tr>
  </table>

  <br>
  <table cellspacing="0" cellpadding="1">
     <tr>
      <td width="5%" align="right" class="srcHeader">Line</td>
      <td width="5%" align="right" class="srcHeader">Branch</td>
      <td width="5%" align="center" class="srcHeader">Hit</td>
      <td width="75%" align="left" class="srcHeader src">Source</td>
    </tr>

    <tr>
<td align="right" class="lineno"><pre>1</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>/*</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>2</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * Copyright (c) Cangjie Library Team 2022-2022. All rights resvered.</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>3</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> */</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>4</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>5</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>/**</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>6</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @file</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>7</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * This file is about yaml decode.</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>8</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> */</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>9</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>10</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>package yaml</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>11</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>12</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>/**</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>13</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * The Function is decode</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>14</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> *</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>15</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @param data of Array&lt;UInt8&gt;</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>16</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> *</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>17</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @return Type of JsonValue</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>18</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @since 0.30.4</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>19</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> */</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>20</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>public func decode(data: Array&lt;UInt8&gt;): JsonValue {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>21</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    initResolve()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>22</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    decode(data, false)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>23</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>}</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>24</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>25</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>/**</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>26</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * The Function is decode</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>27</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> *</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>28</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @param data of Array&lt;UInt8&gt;</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>29</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @param strict of Bool</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>30</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> *</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>31</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @return Type of JsonValue</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>32</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> * @since 0.30.4</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>33</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre> */</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>34</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>public func decode(data: Array&lt;UInt8&gt;, strict: Bool): JsonValue {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>35</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    initResolve()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>36</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    let p = Parser(data)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>37</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    try {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>38</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        let r = p.parse()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>39</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        match (r) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>40</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case Some(n) =&gt;</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>41</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                let d = Decoder(strict)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>42</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                let (out, _) = d.decode(n)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>43</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                if (d.terrors.size &gt; 0) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>44</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount uncoveredLine"><pre>N</pre></td>
<td align="left" class="src uncoveredLine"><pre>                    throw TypeError(d.terrors.toArray())</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>45</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>                }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>46</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                return out</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>47</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case _ =&gt; return JsonNull()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>48</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>49</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    } catch (err: Exception) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>50</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        throw err</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>51</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    } finally {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>52</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        p.destroy()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>53</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>54</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>}</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>55</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>56</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>class Decoder {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>57</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    var doc: ?Node = None</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>58</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    var aliases: HashMap&lt;Node, Bool&gt;</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>59</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    var terrors: ArrayList&lt;String&gt; = ArrayList&lt;String&gt;()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>60</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    var strict: Bool</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>61</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    var decodeCount: Int64 = 0</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>62</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    var aliasCount: Int64 = 0</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>63</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    var aliasDepth: Int64 = 0</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>64</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>65</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    init(strict: Bool) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>66</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        this.strict = strict</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>67</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        this.aliases = HashMap&lt;Node, Bool&gt;()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>68</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>69</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>70</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    func decode(n: Node): (JsonValue, Bool) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>71</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        this.decodeCount++</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>72</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        if (this.aliasDepth &gt; 0) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>73</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            this.aliasCount++</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>74</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>75</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>76</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        // if (this.aliasCount &gt; 100 &amp;&amp; this.decodeCount &gt; 1000 &amp;&amp; (Float64(this.aliasCount) / Float64(this.decodeCount)) &gt;</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>77</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        //     allowedAliasRatio(this.decodeCount)) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>78</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        //     failf("document contains excessive aliasing")</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>79</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        // }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>80</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>81</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        match (n.kind) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>82</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case ParserNodeType_DOCUMENT_NODE =&gt; return document(n)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>83</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case ParserNodeType_ALIAS_NODE =&gt; return alias(n)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>84</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case ParserNodeType_SCALAR_NODE =&gt; return scalar(n)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>85</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case ParserNodeType_MAPPING_NODE =&gt; return mapping(n)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>86</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case ParserNodeType_SEQUENCE_NODE =&gt; return sequence(n)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>87</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount uncoveredLine"><pre>N</pre></td>
<td align="left" class="src uncoveredLine"><pre>            case _ =&gt; throw Exception("internal error: unknown node kind: ${n.kind}")</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>88</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>89</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>90</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>91</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    func document(n: Node): (JsonValue, Bool) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>92</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        if (n.children.size == 1) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>93</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            this.doc = n</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>94</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            let (out, _) = decode(n.children[0].getOrThrow())</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>95</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            return (out, true)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>96</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>97</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount uncoveredLine"><pre>N</pre></td>
<td align="left" class="src uncoveredLine"><pre>        return (JsonNull(), false)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>98</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>99</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>100</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    func alias(n: Node): (JsonValue, Bool) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>101</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        if (match (this.aliases.get(n)) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>102</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case Some(r) =&gt; r</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>103</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            case _ =&gt; false</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>104</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>105</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount uncoveredLine"><pre>N</pre></td>
<td align="left" class="src uncoveredLine"><pre>            failf("anchor '${n.value}' value contains itself")</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>106</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>107</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        this.aliases[n] = true</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>108</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        this.aliasDepth++</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>109</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        let (out, good) = decode(n.alias.getOrThrow())</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>110</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        this.aliasDepth--</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>111</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        this.aliases.remove(n)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>112</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        return (out, good)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>113</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>114</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>115</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    func scalar(n: Node): (JsonValue, Bool) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>116</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        var tag = ""</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>117</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        var resolved: JsonValue = JsonNull()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>118</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        if (n.tag == "" &amp;&amp; !n.implicit) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>119</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            tag = YAML_STR_TAG</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>120</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            resolved = JsonString(n.value)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>121</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        } else {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>122</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            let (t, r) = resolve(n.tag, n.value)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>123</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            tag = t</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>124</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            resolved = r</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>125</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            if (tag == YAML_BINARY_TAG) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>126</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                let data = fromBase64String(resolved.asString().getValue().replace("\n", ""))</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>127</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>                match (data) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>128</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                    case Some(d) =&gt;</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>129</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                        let resolve = JsonArray()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>130</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                        for (i in d) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>131</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                            resolve.add(JsonInt(Int64(i)))</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>132</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>                        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>133</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                        resolved = resolve</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>134</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>135</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount uncoveredLine"><pre>N</pre></td>
<td align="left" class="src uncoveredLine"><pre>                    case _ =&gt; failf("!!binary value contains invalid base64 data")</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>136</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>                }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>137</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>            }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>138</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>139</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        return (resolved, true)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>140</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>141</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>142</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    func mapping(n: Node): (JsonValue, Bool) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>143</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        let parent = JsonObject()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>144</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        let children = n.children</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>145</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        for (i in 0..children.size : 2) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>146</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            if (isMerge(children[i].getOrThrow())) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>147</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                continue</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>148</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>            }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>149</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            let (k, kok) = decode(children[i].getOrThrow())</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>150</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            if (kok) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>151</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                let (v, vok) = decode(children[i + 1].getOrThrow())</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>152</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                if (vok) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>153</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                    let ks = if (k is JsonArray) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>154</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                        (k as JsonArray).getOrThrow()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>155</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>                    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>156</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                    parent.put(decodeKey(k), v)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>157</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>                }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>158</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>            }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>159</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>160</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        (parent, true)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>161</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>162</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>163</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    func sequence(n: Node): (JsonValue, Bool) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>164</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        let parent = JsonArray()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>165</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        for (v in n.children) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>166</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            let (item, ok) = decode(v.getOrThrow())</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>167</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            if (ok) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>168</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                parent.add(item)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>169</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>            }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>170</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>171</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        (parent, true)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>172</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>173</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>}</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>174</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>175</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>let aliasRatioRangeLow = 400000</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>176</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>177</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>let aliasRatioRangeHigh = 4000000</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>178</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>179</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>let aliasRatioRange = Float64(aliasRatioRangeHigh - aliasRatioRangeLow)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>180</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>181</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>/*</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>182</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>func allowedAliasRatio(decodeCount: Int64): Float64 {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>183</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    if (decodeCount &lt;= aliasRatioRangeLow) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>184</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        0.99</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>185</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    } else if (decodeCount &gt;= aliasRatioRangeHigh) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>186</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        0.10</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>187</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    } else {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>188</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        0.99 - 0.89 * (Float64(decodeCount - aliasRatioRangeLow) / aliasRatioRange)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>189</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>190</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>}</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>191</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>*/</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>192</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>193</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>func isMerge(n: Node): Bool {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>194</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    return n.kind == ParserNodeType_SCALAR_NODE &amp;&amp; n.value == "&lt;&lt;" &amp;&amp; (n.implicit == true || n.tag == YAML_MERGE_TAG)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>195</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>}</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>196</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre></pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>197</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>func decodeKey(k: JsonValue): String {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>198</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    if (k is JsonArray) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>199</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        var s = ""</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>200</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        var i = 0</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>201</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        for (v in k.asArray().getItems()) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>202</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            if (i &gt; 0) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>203</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>                s += ","</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>204</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>            }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>205</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            s += decodeKey(v)</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>206</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>            i++</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>207</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>        }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>208</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        s</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>209</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    } else if (k is JsonObject) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>210</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount uncoveredLine"><pre>N</pre></td>
<td align="left" class="src uncoveredLine"><pre>        k.asObject().toJsonString()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>211</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>    } else if (k is JsonString) {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>212</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        k.asString().getValue()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>213</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    } else {</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>214</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount coveredLine"><pre>Y</pre></td>
<td align="left" class="src coveredLine"><pre>        k.toString()</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>215</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>    }</pre></td>
</tr>
<tr>
<td align="right" class="lineno"><pre>216</pre></td>
<td align="right" class="linebranch"></td>
<td align="center" class="linecount "><pre></pre></td>
<td align="left" class="src "><pre>}</pre></td>
</tr>

  </table>
  <br>

  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr><td class="hr"><td></tr>
    <tr><td class="footer">Generated by: cjcov (Version 1.0.0)</a></td></tr>
  </table>
  <br>

</body>

</html>